每年高性能计算或者说超算的盛事主要有两个,分别是年中的 ISC(国际超算研讨会)和年末的 SC(超算研讨会),前者的历史可以追溯到 1986 年,而后者则是 1988 年。
它们受瞩目的其中一个原因是自 1993 年年中开始,每隔半年公布一次的 Top500 超算排名榜就是分别在这两个盛会上发布。
超算 500 强是全球瞩目的计算性性能排名榜,每到排行榜发布之日,全球各大媒体都会发布相应的消息,即使你不是这个行业内的人士也会因此或多或少得知有这么一个排行榜。
既然大会受到了媒体的瞩目,因此很多行业内的知名企业也会藉此机会发布各自的最新技术和产品,而在这次的 SC15 上美国 AMD 公司则公布了一条非常轰动业界的消息,这就是该公司宣布将推出名为 Boltzmann Initiative 的工具包,能够将 CUDA 代码转换为可以在 AMD FirePro 上执行的二进制代码。
众所周知,当前的 GPU 或者说异构计算编程阵营主要有两派,即 OpenCL 和 CUDA,因为当年 NVIDIA 抢闸推出了 Tesla GPU,在学界、产业等多个领域以惊人的魄力力推基于 Tesla 的 CUDA 编程框架,许多 GPU 计算项目因此选择了 CUDA。
在 OpenCL 以及微软的 DirectCompute 推出的时候,也大量借鉴了 CUDA 的多层次化并行、内存设计,例如 OpenCL 中的许多术语其实都可以在 CUDA 中找到其来源,某种程度上,最初的 OpenCL 就是 CUDA 的别名开放版。
从编程语言的角度,OpenCL 属于开放标准,而 CUDA 则完全控制在 NVIDIA 手里,有自己的编译器(nvcc),而 OpenCL 则是以库的形式提供,可以在 C 等语言中以动态或者静态的方式链接,使用现有的编译器即可。
CUDA 是专有的开发环境,必须使用支持 CUDA 显卡才能使用,因此用户选择了 CUDA 的话,那就只能选择 NVIDIA 的显卡。
而 AMD Boltzmann Initiative 的出现可以在一定程度上改变这个局面,CUDA 编程人员可以在 NVIDIA 和 AMD GPU 加速器之间根据自己的预算、应用环境、性能需求进行自行的选择,不再仅仅限于某个厂商的产品。
随着 Boltzmann Initiative 的发布,人们也对此提出了一系列疑问,例如 Boltzmann Initiative 的推出是否意味着 AMD 要全面转向 CUDA、NVIDIA 是否答应等等,这些问题其实在官方的资料中大都有答案,下面就让我试试看根据这些资料就大家常见的问题提供个人的见解。
问:AMD 这次公布的 Boltzmann Initiative 到底是怎么一回事?
答:Boltzmann Initiative是 AMD 公司针对旗下服务器级 APU、GPU 产品的工具包,目的是为开发人员提供一个比 CUDA 更舒适的超算开发环境。
它主要由三部分构成:
1、驱动程序--针对服务器版 FirePro 和 Linux 而特别定制的 HSA+ 驱动程序。
2、C++ 编译器--异构计算编译器(Heterogeneous Compute Compiler)。
3、CUDA 代码迁移界面--HIP。
问:HSA+ 驱动程序是怎么一回事呢?
答:根据 AMD 的介绍,该公司将会提供一个专门的 64-位 Linux 驱动程序,该驱动程序针对 Linux 的 headless 操作进行了全新设计,而在此之前 AMD 的 OpenCL 驱动 headless 模式属于"技巧性"实现。
所谓的 headless 就是显卡不提供显示输出,没有物理键鼠等用户界面,是典型的超算应用环境。
当显卡提供显示输出的情况下,驱动程序需要每隔一段时间就检查 GPU 上跑的程序是否已经完成,在 Windows 里这个时间是 5 秒左右,如果 5 秒还没执行完,操作系统就会对显示驱动进行复位操作,相当于强制停止运行该程序。
对于显示输出来说这样被称作"看门狗"的机制是合理的,因为现在的人机交互界面都需要显卡的参与,如果显卡长时间忙着一件事情就会导致系统看上去瘫痪了。
但是如果这片显卡只是用作加速卡而不参与显示输出(所谓的 headless 模式)的话,"看门狗"的存在意义或者机制就需要调整了。
超算应用大部分都是在 Linux 下进行开发、使用的,这有两个原因,一个是在 Linux 的工具链比较强大、有较多的社区支持,另一个原因是这次 AMD 提供的编译器是基于 Clang/LLVM 这个基础架构目前在 Linux 要比 Windows 成熟得多(Windows 下涉及到运行时库的问题,相当棘手),这都涉及到最终用户的使用成本问题。
这个驱动或者说开发环境被称作 HSA+ 的原因是因为这是首次把 HSA 概念注入到独立的显卡上,在此之前,你要是留意 HSA 的介绍,都会看到完全是在讲 APU 的,APU 当然可以用作超算,但是性能先决的情况下,显然还是需要专用的加速卡。不过,HSA+ 作为一个扩展集合目前并非 HSA 组织的标准,所以这个驱动暂时还不会在非 FirePro S 系列的其他显卡上实现。AMD 未来有可能会将这些扩展开源。
有了 HSA+ 以后,独立显卡和 CPU 就可以使用单一统一内存寻址空间,降低程序开发的难度,并且对性能会有一定的帮助。
问:异构计算编译器(HCC)是怎么一回事?
答:HCC 是 Boltzmann Initiative 的重要组成部分,是之前的 HSA 编译器上的加强版本,提供了 C11、C++14、C++17、OpenMP 4.0 的支持,不管是 CPU 还是 GPU 的代码,都可以透过这个编译器来编译,无需像 OpenCL 那样需要另外的编译器来编译。
问:HIP 又是什么来的呢?
答:HIP 就是异构计算迁移界面(Heterogeneous-compute Interface for Portability),它包含了一个名为 HIPify Tools 的工具,可以自动把 CUDA 源代码转换为 HIP 源代码,我们目前尚未得知这个 HIP 源代码是长什么样子(应该就是上面提到的 HCC 所能支持的 C/C++/OMP 代码)的,但是 HIP 代码可以既可以被 AMD HCC 编译也可以被 NVCC 编译(透过 HIP 头文件让 NVCC 实现 HIP支持)。
问:那么这个 Boltzmann Initiative 到底意味着什么呢?
答:首先,HIP 并不会让 NVCC 编译的二进制代码在 AMD GPU 上运行,但是它提供了一个重要的技术手段,可以把 CUDA 代码转换成 HCC 或者 NVCC 支持的代码,这些 HIP 代码用 HCC 编译后就能够在 AMD FirePro S 系列 GPU 上运行了。
其次,由于 HIP 的存在,CUDA 开发人员可以把以往的代码很快地往通用型的 HIP 代码上移植,至少在 Linux 下是这样,确保代码可以在 AMD FirePro 和 NVIDIA 的 GPU 上运行。
问:Boltzmann Initiative 的出现是否意味着 AMD 要转向 CUDA 呢?
答:Boltzmann Initiative 的出现与 AMD 是否转向 CUDA 无关,它的三大核心主要目的是为了让程序员可以更舒适地编写异构计算代码,将 CUDA 转换为 HIP 代码只是其中的一个功能,目的是一致的。
问:NVIDIA 会对 Boltzmann Initiative 坐视不理吗?
答:Boltzmann Initiative 的 HIP 转换器属于源代码级的转换,HCC 并不是直接对 CUDA 代码进行编译、编译出来的二进制代码也只能在 AMD FirePro S 系列专业卡执行,所以 Boltzmann Initiative 不太可能引起法律上的问题。
问:Boltzmann Initiative 对现有产品会有怎样的影响?
答:根据目前看到的资料,Boltzmann Initiative 只对 FirePro S 系列有影响,而且仅限于 Linux 下。这其中的原因应该是 Boltzmann Initiative 本身是希望加强 AMD 在超算领域的地位,而且像 HSA+ 里的独立 GPU 统一内存寻址模式,在游戏和工作站应用中基本上是不需要的,所以这个特性最适合在 FirePro 上实现。
问:什么时候能看到 Boltzmann Initiative 呢?
答:根据 AMD 的新闻稿,预期在明年 Q1 可以看到。
特别提醒:目前关于 Boltzmann Initiative 的信息还不是很完整,而且距离正式发布尚有一段时间,因此文中的内容可能会与实际有出入,仅代表作者本人一家之言,请读者随时关注相关的最新报道。
@更多信息请访问
蓝宝PGS网站: http://www.SapphirePGS.com/
技术支持邮箱: ws.cn@sapphiretech.com
中国区唯一指定销售服务商
景丰电子网站: http://www.kingfung.com/
景丰天猫旗舰店:http://lianjingsm.tmall.com/
蓝宝 PGS 京东购买网址:京东蓝宝 PGS FirePro 产品列表
深圳KF景丰:0755 - 8375 9168 / 0755-83295070(深圳市福田区深南中路佳和华强大厦B座21楼)
广州KF景丰:020 - 3849 8045 / 0755-83295070 (广州天河区石牌西路1-7号太平洋数码广场B场G306室)
上海KF景丰:021 - 5490 1989 / 0755-83295070(上海市徐汇区漕溪北路41号汇嘉大厦太平洋数码广场一期16楼1608室)
北京KF景丰:010-8268 9066 / 0755-83295070(北京中关村科贸电子城6楼A133室)