适用于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计数。
适用于AMD ROC GPU的Numba概述的更多相关文章
- 适用于CUDA GPU的Numba 随机数生成
适用于CUDA GPU的Numba 随机数生成 随机数生成 Numba提供了可以在GPU上执行的随机数生成算法.由于NVIDIA如何实现cuRAND的技术问题,Numba的GPU随机数生成器并非基于c ...
- 适用于CUDA GPU的Numba例子
适用于CUDA GPU的Numba例子 矩阵乘法 这是使用CUDA内核的矩阵乘法的简单实现: @cuda.jit def matmul(A, B, C): """Perf ...
- 微软原文翻译:适用于.Net Core的WPF数据绑定概述
原文链接,大部分是机器翻译,仅做了小部分修改.英.中文对照,看不懂的看英文. Data binding overview in WPF 2019/09/19 Data binding in Windo ...
- 【原创】Linux环境下的图形系统和AMD R600显卡编程(6)——AMD显卡GPU命令格式
前面一篇blog里面描述了命令环缓冲区机制,在命令环机制下,驱动写入PM4(不知道为何会取这样一个名字)包格式的命令对显卡进行配置.这一篇blog将详细介绍命令包的格式. 当前定义了4中命令包,分别是 ...
- 布客·ApacheCN 翻译/校对/笔记整理活动进度公告 2020.1
注意 请贡献者查看参与方式,然后直接在 ISSUE 中认领. 翻译/校对三个文档就可以申请当负责人,我们会把你拉进合伙人群.翻译/校对五个文档的贡献者,可以申请实习证明. 请私聊片刻(52981514 ...
- python可以提高程序执行速度N倍你知道吗?
1.1.Numba的约5分钟指南 Numba是Python的即时编译器,它最适用于使用NumPy数组和函数以及循环的代码.使用Numba的最常用方法是通过其装饰器集合,可以应用于您的函数来指示Numb ...
- GPU的线程模型和内存模型
遇见C++ AMP:在GPU上做并行计算 Written by Allen Lee I see all the young believers, your target audience. I see ...
- GPU大百科全书 第二章 凝固生命的光栅化
光栅化——死神来了…… 前言:在上一期的GPU大百科全书里,我们目睹了可爱的香草从抽象世界走向现实,从方程还原成实体的全过程.可以说香草活了,因为几何单元,我们赋予了她完整的灵魂. 如果你正在为G ...
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解
基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...
随机推荐
- 【JVM】JVM中的垃圾收集器
垃圾收集器组合 Serial+Serial Old Serial+CMS ParNew+CMS ParNew+Serial Old Paralle Scavenge + Serial Old Para ...
- 获取中断描述符表IDT的信息
<pre name="code" class="cpp">//GetIDT.h文件 #ifndef _WIN32_WINNT // Allow us ...
- Windows核心编程 第十八章 堆栈
第1 8章 堆 栈 对内存进行操作的第三个机制是使用堆栈.堆栈可以用来分配许多较小的数据块.例如,若要对链接表和链接树进行管理,最好的方法是使用堆栈,而不是第 1 5章介绍的虚拟内存操作方法或第1 7 ...
- PowerShell-5.网络请求
写了一个函数,用于文件下载并且执行: function DownLoadAndRun($vUrl ,$vLocalPath ,$vStart){ Import-Module BitsTransfer ...
- ADB调试工具的使用
ADB(Android Debug Bridge)安卓调试桥,ADB工具是可以方便调试安卓应用的工具. ADB的安装 下载ADB工具,解压, 将ADB工具的目录加入系统环境变量中,打开CMD窗口,输入 ...
- Swift系列四 - 枚举
适度给类型起别名能够让代码更加易懂,开发效率更高,可维护性更好. 一.typealias(别名) typealias用来给类型起别名. typealias Byte = Int8 typealias ...
- Redis—简单动态字符串(SDS)
目录 Redis-简单动态字符串(SDS) SDS的定义 SDS与C字符串的区别 1. 常数复杂度获取字符串长度: 2. 杜绝缓冲区溢出: 3. 减少修改字符串时带来的内存重分配次数 4. 二进制安全 ...
- idea中修改代码大小设置
修改代码大小 控制台字体大小
- Securecrt 在win7下 字体太少问题
用WIN7,觉得securecrt里面可用的字体太少了.很多都没有,比如lucida console,经过一番查找,终于找到解决问题的方法了. 原因就是win7里面的很多字体都被设置为隐藏了,所以se ...
- [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作
PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...