乐于分享
好东西不私藏

PTX9.1文档第一章看起来很轻松

PTX9.1文档第一章看起来很轻松

马年硬啃PTX文档咋样立的 flag,一点点啃 PTX9.1。
作为第一章,9.1的文档相对于1.0的变化没有很大。
(大概瞅瞅 84 页的 PTX 1.0 文档的前三章都有啥)
1.1 节还是大概说明 PTX 是个啥,二十年过去了,这层虚拟机的抽象以及可以详尽描述 instruction set architecture 的设计依然让人眼前一亮。
1.2 节则是继续具体说明了为啥会让人“眼前一亮”。
上层工具有完整 specs 去完成更高层抽象以及更自动化的工作,下层硬件有一定的自由度在保证兼容性的同时做一定的调整,PTX 这一层无需关心具体寄存器数量等随硬件变化的量,软件能做得够通用,具体需求也方便特调,因为可以 gen 出来 ptx 之后手动进一步调优。(新设备更依赖异步操作和数据 locality 来提升效能,性能极客极少数时候需要更低层级的对硬件的控制,这种 case 我们碰到再聊。)
1.3 节就是说 PTX9.1 相对于 9.0 更新了啥了,有五条:
  • local memory 上的数据 ld 和 st 的时候允许加 .volatile 关键字。
  • cvt 现在支持 2xfp16/bf16 转到 2xnvfp4/fp6(e2m3,e3m2)/fp8(e4m3,e5m2) 数据类型。
  • mma/mma.sp 支持了 .scale_vec::4X, .ue8m0, .kind::mxf4nvf4 的组合。
  • cvt 还支持了 .s2f6x2 的 type。
  • multimem.cp.async.bulk 和 multimem.cp.reduce.async.bulk 可用了。
这里面,比如第四条,我暂时也不知道啥意思,读到文档这部分的时候再具体实验。
1.4节还是说和PTX1.0时候差不多的文档结构,先讲编程模型,大概就是我们手上能有啥操纵杆,然后讲机器模型,大概就是我们要去操纵啥样的机器,再然后就是语法,说明跟机器打交道的“格式”和“礼仪”,之后展开说了逻辑上的存储空间、数据类型和变量,再然后细分讲了指令的操作数,之后插了个PTX1.0时候还没有的章节 “Abstracting the ABI”,ABI这个词我最初是从 cudf 里听到的,至今没有对这个概念有个特别精确而具象的认识,继续就是每条指令的具体说明(到PTX9.1了,这部分内容变得巨多,得占个五六百页),最后列了下特殊寄存器、directives、和 PTX 2.0 及以后每代的更新就结束了(PTX1.x 其实很久不讲了,好像是到了 PTX2.0 这套东西才相对完备)
最后的最后,把 IEEE 754-2008, OpenCL, CUDA Programming Guide, CCCL 关于 atomicity 部分的 doc,以及 PTX writer Guide to Interoperability 的链接作为引用给贴到了第一章,供大家尽早知悉并在需要时查看。
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » PTX9.1文档第一章看起来很轻松

评论 抢沙发

7 + 9 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮