最近版本的 PTX 文档相对于我们之前聊过的初版变动并不多,跟着 84 页的 PTX 1.0 文档第4章那5页纸能学会写 PTX 代码么?不能。。。快二十年过去,“C: AReference Manual by Harbison and Steele provides a good description of the C preprocessor.”,这句话还在,这段老演员代码片段也没怎么变。在一些适当的地方,比如讲自己起名的格式的时候,倒是像 golang 文档一样用起了正则表达式,这样更清晰精简些:“PTX does not specify a maximum length for identifiers and suggests that all implementations support a minimum length of at least 1024 characters.”这句比较奇怪,不造在 suggests 哪里的 implementations 支持长名字。predefined identifiers 相对于 1.0 的时候多了不少(这个 pdf 排版和 WARP_SZ 都挺出戏的)剩下几页讲常量和常量计算的内容挺多,包括运算符优先级等内容,但可以用的时候再看,估计也全是些编译期在 CPU 上算的东西,类似神经网络计算图的常量折叠(如果不做常量计算,只 hard code magic number,可能就不用管这些了,反正 PTX 代码的可读性也没有特别好其实。。。),需要注意的还是常量计算的时候 int 和 float 都是默认 8byte 宽的类型,求准不求快。而下面这些,我的朋友,可能才是真正要唠好久的东西:我们争取先把那些偏属性的,相对独立的,静态的东西搞清楚;不然就很容易被那些偏行为的,组合性的,动态的东西给绕的很迷糊。。