今年九月份,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 而言,这实在是一步好棋。
感谢董志南对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。
评论