统一 Linux 驱动第一步:AMD 发布新版 AMDGPU 内核驱动

  • 张天雷

2015 年 4 月 30 日

话题:Linux语言 & 开发架构

AMD 公司早在去年就正式发布了 Radeon R9-285 显卡。然而,相关的开源 Linux 驱动却迟迟没有推出。经过近一年的等待,AMD 在 4 月 20 日宣布推出最新的 AMDGPU Linux 内核驱动

AMDGPU 内核驱动支持最新的 Radeon R9 285 显卡、即将推出的 GPU 和 Carrizo 等 APU。根据 Alex Deucher 在 XDC2014 大会宣布的统一化 GPU 驱动架构,AMD 公司将 AMDGPU 代码中的开源模块及闭源模块统一成单一的开源内核模块。这些驱动使用相同的 DRM library ioctl wrapper (libdrm) 和 DDX(X.Org) 驱动。其中,闭源驱动限制智能用户态工作,主要负责处理 OpenGL、OpenCL/compute 等,并与开源堆栈沟通交换信息。

除了新的 AMDGPU 内核驱动,新的 xf86-video-amdgpu DDX 驱动也被一并推出,用来支持新的 DRM/KMS 组件上的 X.Org 服务器。libdrm 代码经过更新,命名为 libdrm_amdgpu。至于 Mesa/Gallium3D 驱动方面,Volcanic Island 硬件支持仍然内置在 RadeonSI/Gallium3D 驱动内,该驱动支持 Radeon HD 7000 系列以及更新的 GPU。新的 AMDGPU winsys 被添加到 Gallium3D,但是实际的驱动程序为经过明显修改的 RadeonSI,用来支持最新的 AMD 硬件。此外,新的 AMDGPU 栈依赖 LLVM 3.6 或者更新,但是 LLVM3.7 SVN 能够使得性能最大化。

Phoronix.com 网站的作者 Michael Larabel 表示,新的驱动在 VI 和 Carrizo 方面所支持的内容包括 OpenGL 3.3、利用带 Gallium3D VDPAU 状态追踪器的 UVD 模块实现的视频解码和利用 VCE 引擎的视频编码。新的驱动模式适用的是 Tonga 以及未来一代的 AMD GPU 产品。但是,现在的 Radeon GPU 用户仍然可以使用目前的 Radeon DRM 驱动。AMD 公司会在未来一段时间继续维护这些驱动程序。

目前,AMDGPU 内核驱动程序已经可以通过Alex Deucher 创建的 Git 分支来获得。驱动程序所支持的内核版本为 Linux 4.2. 新的xf86-video-amdgpu 驱动也可以下载相应的压缩包。此外,Mesa 的更新libdrm 的更新需要单独通过 freedesktop 网站进行下载。AMD 公司的 Alex Deucher 表示,当前的 AMDGPU 代码还缺乏对 Tonga GPU 的功耗管理等。未来,AMD 会很快解决代码中存在的这些问题。


感谢魏星对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

Linux语言 & 开发架构