写点什么

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

  • 2015-12-21
  • 本文字数:1732 字

    阅读完需:约 6 分钟

今年九月份,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))。

2015-12-21 18:002250
用户头像

发布了 268 篇内容, 共 137.2 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

产品经理第二周作业

朱琴

产品经理训练营 - 第二周作业

泡面加煎蛋

70 张图带你彻底掌握红黑树

Java 数据结构 红黑树

抽奖小助手——利益相关者

墨狂之逸才

「Android渲染」图像是怎样显示到屏幕上的?

李小四

Android渲染 AndroidUI RenderingPipeline

Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

潘大壮

Java 后端 mybatis mybatis源码

面试加分项!Android项目开发如何设计整体架构?学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

第二章作业

白知之明

产品训练营-第二周-作业

邹小胖

产品经理训练营

融资融券系统搭建

v16629866266

Mybatis系列全解(一):手写一套持久层框架

潘大壮

Java 后端 mybatis mybatis源码

Mybatis系列全解(二):Mybatis简介与环境搭建

潘大壮

Java 后端 mybatis mybatis源码

阿里发布2021年Redis“神级”手册:基础+原理+应用+集群+拓展+源码,六管齐下

Java架构追梦

Java redis 阿里巴巴 源码 架构

面试官:你说说ReentrantLock和Synchronized区别

叫练

AQS 多线程 ReentrantLock lock 独占锁

MapReduce练习案例1-统计求和

小马哥

大数据 mapreduce 七日更

Spring 是如何解决循环依赖的?

程序员小航

Java spring 源码 循环依赖

Springboot使用jasypt需要注意的一个小地方

Sky彬

springboot jasypt

anyRTC在音频领域的探索

anyRTC开发者

ios android 音视频 WebRTC 在线教育

Java 程序经验小结:反射机制勿滥用

后台技术汇

28天写作

作业:挑一个你喜欢的产品平台,列出产品的利益相关方。

嫉妒的耗子

Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

潘大壮

Java 后端 mybatis mybatis源码

阿里开始“拆”中台?!中台建设何去何从?

博文视点Broadview

产品经理训练营 - 第二章作业

Ryun

Mybatis系列全解(三):Mybatis简单CRUD使用介绍

潘大壮

Java 后端 mybatis mybatis源码

产品经理的大局观——

小匚

产品经理 产品经理训练营

产品训练营 - 对二次作业

Wangyunnfei

面试学习!我们究竟还要学习哪些Android知识?讲的明明白白!

欢喜学安卓

android 程序员 面试 移动开发

拆解 抽奖助手 的利益相关者

小匚

产品经理 产品经理训练营 无码科技

实习流水帐(一)

YUKI0506

CNCF CTO解读:2021云原生最新趋势

华为云原生团队

开源 Kubernetes 开发者 云原生 边缘技术

一看就懂的网络传输介质介绍

AMD宣布GPUOpen倡议,主推开源软件栈_语言 & 开发_张天雷_InfoQ精选文章