面向未来计算-异构开发技术社区

AMD宣布GPUOpen倡议,主推开源软件栈

今年九月份,AMD公司专门成立了Radeon技术部门(Radeon Technologies Group,RTG),来壮大自己GPU研发领域的技术力量。此外,该公司还聘请了Raja Koduri为全球资深副总裁兼首席架构师,并提拔图形与并行计算架构师Michael Mantor为公司院士。近日,Raja针对全球媒体主持召开了一次RTG技术峰会,介绍了AMD未来一年的GPU产品和技术战略,内容十分丰富。本文针对会议中所介绍的GPUOpen进行详细介绍。GPUOpen是AMD所发起的一个全新倡议。其主要目标是以开放的方式来推动GPU相关的开发,共包含了三个方面的内容。开源工具链一直以来,AMD在游戏机市场都占据着重要的地位。PlayStation 4和Xbox One都采用了AMD的CPU和GPU。然而,AMD在PC市场无法和NVIDIA平起平坐。其根源还在于显卡以及相关的开发工具难以与其抗衡。根据经验,游戏机中GPU的底层访问能够为游戏性能带来很大的提升。因而,AMD和RTG一直在探索如何能够针对PC和游戏机进行类似的开发。之前,AMD曾提出了一个突破性的显卡 API——Mantle,希望以此来改变游戏开发领域,提升电脑游戏的性能和速度。近期,NVIDIA也推出了Gameworks工具,向AMD发起了挑战——该工具使得游戏开发者可以快速应用NVIDIA的3D技术,简化开发,但AMD系统就无法享受到这样的好处。

为了应对该挑战,AMD的GPUOpen在开放底层硬件访问权限的基础上提出了开源的想法。GPUOpen倡议包括了为游戏开发者提供底层GPU硬件和GitHub上开源的效果、工具、库以及SDK的访问权限。其相关代码会使用相对宽松的MIT许可证,而且在GitHub中进行公布。这样,开发人员就可以利用一个统一的工具库来面向AMD、NVIDIA以及Intel等公司的GPU。目前,TressFX、ShadowFX、GeometryFX以及AOFX库都包括在了GPUOpen范围内。此外,GPUOpen还包括了FireRender渲染引擎、GPU加速的光线追踪SDK、RapidFire云SDK以及CodeXL调试器和性能分析器。

支持高级语言开发几周以前,AMD已经宣布了Boltzmann倡议。该倡议的主要目标就是利用C++等高级语言来简化并行应用程序的开发工作。其所包含的异构系统架构(Heterogeneous System Architecture,HSA)的软件套件提供了一个针对C++语言的异构计算编译器(HCC)。利用该编译器,开发人员可以更加有效、便捷地使用异构系统中的GPU硬件资源。

此外,异构计算可移植界面(HIP)还允许开发人员将CUDA代码转换为可移植的C++代码。据AMD透露,HIP在很多情况下可以将90%的CUDA代码转换成C++,而剩余的10%则可以手动转换。预计AMD将在2016年1月开放Boltzmann的初期访问。开源Linux驱动和运行时AMD的GPUOpen倡议还包括了一个针对高性能计算的Linux驱动模型和运行时。目前,AMD维护了两个Linux驱动栈——开源的Radeon驱动和闭源的Catalyst驱动。未来,AMD将会推出一个针对其GPU的统一开源基础图像驱动。在此基础上,AMD再维护两个并行的驱动栈——全开放的栈包含的都是开源的模块;高性能栈则包含了开源的运动视频模块和闭源的OpenGL模块。未来,和OpenGL模块并行存在的OpenCL/Vulkan模块将会从闭源走向开源。而AMD全新的无头64位Linux驱动包括了众多关键功能——低延迟计算调度、PCI-E数据传输、支持对等GPU、从和显存直接互连的InfiniBand网络中远程直接访问内存(RDMA)以及支持单一大内存分配。这些功能可以很好的满足高性能计算的需求。

尽管GPUOpen的倡议刚刚提出,其已经能够明确说明AMD在GPU方面的发展方向。在与NVIDIA的PC市场竞争中,AMD已经处于劣势,但该倡议却能够有效利用开源社区的力量来促进AMD GPU以及相关工具的发展。而且,GPUOpen能够让开发人员更好的访问底层GPU,实现应用程序性能的提升。这样,更多的应用就会倾向于针对Radeon硬件进行专门的优化,扩展AMD GPU的应用市场,对于AMD而言,这实在是一步好棋。

立即注册,成为异构开发社区会员!

免费获取社区newsletter,优先获取技术支持和活动信息,独享社区 贡献积分政策

特别推荐

你问我答

您所提出的问题,需要管理员审核后才能展示。发布规则

每月红人榜

  • mazhqcs

    所得积分:10

  • 2ningchuo812710
  • 3sjun36510

微博活动