上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 367 下一页
摘要: 开发OpenCL内核测试用例 前面的例子只有主机侧的代码,没有GPU运行的代码,实际上没有调用AMDGPU的异构计算能力,参考网上的代码,写一个实现两个一维向量加和的内核,投到AMDGPU上得到计算结果: #include <stdio.h> #include <stdlib.h> #include 阅读全文
posted @ 2025-04-07 04:48 吴建明wujianming 阅读(44) 评论(0) 推荐(0)
摘要: 基于AMDGPU如何运行OpenCL测试用例 参考CPU算例的OpenCL的例子,写一个OpenCL的helloworld demo,这个并不太难,因为OpenCL是开源机构Khronos Group定义的标准,在这个标准下所有的头文件,运行时标准等都是定义好的,所以源码级没有太多改动,基本上拷贝过 阅读全文
posted @ 2025-04-07 04:42 吴建明wujianming 阅读(60) 评论(0) 推荐(0)
摘要: AMDGPU对CUDA支持方式的分析 实现方式是针对HIP API(Heterogeneous-Computing Interface for Portability)做CUDA的接口套壳,即将cuda的API接口作为标准接口,用AMD ROCm实现cuda的API(目的就是保证对外的API与CUD 阅读全文
posted @ 2025-04-07 04:36 吴建明wujianming 阅读(182) 评论(0) 推荐(0)
摘要: ROCm平台简单分析 在启动docker的测试命令中,传入一个设备参数--device=/dev/kfd,转到DOCKER环境,kfd表示AMDGPU异构计算的GPU设备驱动(KMD)的设备节点,它是用户操作GPU的基础。AMD GPU设备驱动流程简单分析,如图1-24所示。 图1-24 AMD G 阅读全文
posted @ 2025-04-07 04:33 吴建明wujianming 阅读(144) 评论(0) 推荐(0)
摘要: 6本书推荐《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理·设计·应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》 由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《MLIR编译器原理与实践》已经出版,京东、淘宝天 阅读全文
posted @ 2025-04-07 04:28 吴建明wujianming 阅读(50) 评论(0) 推荐(0)
摘要: 标量ALU和控制格式 1. SOP2 标量格式,两个输入,一个输出。如图5-41所示。 图5-41 SOP2标量格式,两个输入,一个输出 2. 格式SOP2 描述这是一个标量指令,有两个输入和一个输出。后面可以跟一个32位的文字常量。 3. SOP1 有一个16位带符号立即(SIMM16)输入和一个 阅读全文
posted @ 2025-04-02 16:51 吴建明wujianming 阅读(22) 评论(0) 推荐(0)
摘要: 11. 使用VOP3编码的VOP1 这种格式的指令也可以编码为VOP3。这允许访问额外的控制位(例如ABS、OMOD),以换取不能使用文字常数。VOP3操作码为:VOP2操作码+0x140,如图5-33所示。 图5-33 VOP3操作码为:VOP2操作码+0x140 12. VOPC说明 VOPC的 阅读全文
posted @ 2025-04-02 16:48 吴建明wujianming 阅读(46) 评论(0) 推荐(0)
摘要: 数据共享操作 本地数据共享(LDS)是一种延迟非常低的临时数据RAM,其有效带宽至少比直接、无缓存的全局内存高一个数量级,允许在工作组中的工作项之间共享数据。与只读缓存不同,LDS允许内存空间的高速写到读重用(完全收集/读取/加载和分散/写入/存储操作)。 1. 数据共享概述 显示了使用OpenCL 阅读全文
posted @ 2025-04-02 16:41 吴建明wujianming 阅读(63) 评论(0) 推荐(0)
摘要: 2. 缓冲区寻址 缓冲区是内存中的一种数据结构,用索引和偏移量进行寻址。索引指向特定的步长字节记录,偏移量是记录字节偏移量,见表5-6。步幅来自资源,索引来自VGPR(或零),偏移来自SGPR或VGPR,也来自指令本身,见表5-7。 表5-6 用于寻址的缓冲指令字段 字段 大小 说明 inst_of 阅读全文
posted @ 2025-04-02 16:35 吴建明wujianming 阅读(22) 评论(0) 推荐(0)
摘要: 向量ALU运算(上) 向量ALU指令(VALU)对64个线程中的每个线程的数据,执行算术或逻辑运算,并将结果写回VGPR、SGPR或EXEC掩码。 1. 微码编码 大多数VALU指令有两种编码:VOP3的64位和32位两种。使用64位指令并具有全方位的功能,使用32位编码中提供了一组有限的功能。一些 阅读全文
posted @ 2025-04-02 16:30 吴建明wujianming 阅读(54) 评论(0) 推荐(0)
上一页 1 ··· 74 75 76 77 78 79 80 81 82 ··· 367 下一页