适用于AMD ROC GPU的Numba概述

适用于AMD ROC GPU的Numba概述

Numba通过按照HSA执行模型将Python代码的受限子集直接编译到HSA内核和设备功能中,从而支持AMD ROC GPU编程。用Numba编写的内核似乎可以直接访问NumPy数组。

术语

以下列出了HSA编程主题中的几个重要术语:

  • 内核:由主机启动并在设备上执行的GPU功能
  • 设备功能:在设备上执行的GPU功能,只能从设备(即从内核或其他设备功能)调用

需求

本文档 介绍了使用ROC的要求。从本质上讲,需要AMD dGPU(iji, Polaris and Vega families,Polaris和Vega系列)和支持PCIe Gen3和PCIe Atomics的CPU(AMD Ryzen和EPYC,以及Intel CPU> = Haswell),链接的文档中有完整的详细信息。此外,还需要Linux操作系统,链接的文档中也列出了受支持和测试的Linux操作系统。

安装

请按照本文档 中的安装说明为系统启用ROC支持。确保将二进制软件包用于系统的linux发行版,以简化该过程。此时,应通过运行以下命令测试安装:

$ /opt/rocm/bin/rocminfo

其输出应列出至少两个HAS设备,其中至少一个应为CPU,至少一个应为dGPU。

假设安装工作正常,roctools则可通过condaNumba渠道与Numba一起通过软件包安装Numba的ROC支持,如下所示(创建名为的环境 numba_roc):

$ conda create -n numba_roc -c numba numba roctools

激活环境,然后运行Numba诊断工具,应确认Numba在启用ROC支持的情况下运行,例如:

$ source activate numba_roc

$ numba -s

输出应包含类似于以下内容的部分:numba -s

__ROC Information__

ROC available                       : True

Available Toolchains                : librocmlite library, ROC command line tools

 

Found 2 HSA Agents:

Agent id  : 0

    vendor: CPU

    name: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz

    type: CPU

 

Agent id  : 1

    vendor: AMD

    name: gfx803

    type: GPU

 

Found 1 discrete GPU(s)             : gfx803

确认ROC可用,列出可用的工具链并显示HAS设备和dGPU计数。

 

posted @ 2020-12-26 18:11  吴建明wujianming  阅读(328)  评论(0编辑  收藏  举报