- 博客(14)
- 收藏
- 关注
原创 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2025/02/05
通过在不同的 stream 中安排任务,你可以在一个 stream 中执行数据传输的操作(例如主机与设备之间的数据拷贝),同时在另一个 stream 中启动核函数进行计算。如下列代码示例,通过创建两个stream并通过musaMemcpyAsync,同时传递数据A与B从host至device,更好的使用了host与device之间的带宽,并减少了运行时常。多个 stream 之间的任务是互相独立的,可以并行执行,从而更充分地利用 GPU 的多通道执行能力。
2025-02-10 13:59:15
918
原创 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04
下面的代码将用CPU与GPU分别对两个矩阵(Matrix A: 256 * 512, Matrix B: 512 * 256)进行相乘,并计算对应的平均耗时
2024-12-05 14:02:45
1159
原创 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/03
这里可以看到相比定义三维Grid & Block Kernel所需要的3次add, 3次multiplies,3次stores,通过1D Gird & Block 的Kernel只需要1次Add, mutiply 和Store,并且整个代码逻辑上要清晰很多,如果Kernel不是一定要计算三维强相关的任务时,定义1D block & grid在计算与简洁性上均有优势。
2024-12-04 13:18:35
2357
原创 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/02
在这里,num_blocks与BLOCK_SIZE均为数值,而非摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/28-CSDN博客中的三维向量,这里只传递数值,MUSA会自动的将其变成一个拍扁的三维向量,例:GridDim = 1 会自动转换为 <1,0,0>
2024-12-03 10:02:19
1081
原创 摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/28
如代码所示,基于每个block的坐标与thread的坐标我们计算出了block offset与thread offset,通过将两者相加我们得到了thread的全局唯一id。上一次记到了,GPU上的线程层级,本次将通过写一个基于MUSA的kernel,在过程中具象化ThreadId,BlockId,与BlockDim等概念。在这个代码里面我们定义了2*3*4的Grid,每个Grid中有24个block。每个Block的维度为4*4*4,每个Block里面有64个Thread。则连接了musa的运行时库,
2024-11-28 19:20:59
900
原创 摩尔线程 国产显卡 MUSA 并行编程学习笔记-2024/11/27
MUSA中还存在两个只读的内存空间可供所有线程访问:constant memory和texture memory。global memory、constant memory和texture memory三个内存空间针对不同的内存使用进行了优化,texture memory还可以为某些特定数据格式提供不同的寻址模式以及数据过滤,在实际使用中可以根据需求选择不同内存空间来实现任务需求。Grid中的Block中的Thread都可以访问global memory。释放Device和Host上分配的Memory。
2024-11-28 09:00:00
2105
原创 摩尔线程 国产显卡 MUSA 并行编程学习笔记-2024/11/25
异构计算是指系统同时使用多种处理器或者核心,这些系统通过增加不同的协处理器(Coprocessors)提高整体的性能或者资源的利用率。常见的搭配有CPU+GPU、CPU+FPGA、CPU+DSP等为什么有了CPU还要用GPU?CPU vs GPU专注于保证计算的低延迟保证计算的高吞吐快相对低计算核心少而强多而相对弱擅长穿行命令,处理复杂的数据类型计算密集型&易于并行的程序架构图。
2024-11-25 20:46:16
1169
原创 摩尔线程 国产显卡 MUSA 并行编程学习笔记-2024/11/24
Ubuntu+Driver+Toolkit+conda+pytorch+torch_musa环境安装(Here)Linux环境是练习编程的基本土壤,本文针对希望本地搭建Windows Ubuntu双系统,并基于Ubuntu进行编成学习的同学们。
2024-11-24 15:10:17
964
原创 摩尔线程 国产显卡 MUSA 并行编程学习笔记-2024/11/21
A:针对pytorch中的每个operator进行dispatchkey计算,将Pytorch中的Operation与MUSA中的kernel进行关联,从而下发计算任务至kernel并进行计算。术语实在有点多,第一遍看过去难度有点大,希望能够先统领的梳理一下各个概念的关系再深入到技术细节,然后课后也特别希望能够由一个习题进行联系。Unboxing = 异质表达 = 不同 layout 的数据对象,可以针对不同任务定制实现,所以效率更高。
2024-11-22 14:37:13
1108
原创 摩尔线程 国产显卡 MUSA 并行编程学习笔记-2024/11/22
Learning Roadmap:Section 1: Intro to Parallel Programming & MUSASection 2: Parallel Programming & MUSA in DepthRef:提示信息 - 摩尔学院 - 摩尔线程https://www.youtube.com/watch?v=86FAWCzIe_4&t=1012shttps://www.youtube.com/watch?v=V1tINV2-9p4https://gfxcourses.stanford.e
2024-11-22 13:25:48
575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人