Reg*_*guj 14
如上所述,您可以使用内联PTX,这是一个示例:
__device__ __inline__ double ld_gbl_cg(const double *addr) {
double return_value;
asm("ld.global.cg.f64 %0, [%1];" : "=d"(return_value) : "l"(addr));
return return_value;
}
Run Code Online (Sandbox Code Playgroud)
你可以通过交换.f64表示.f32(浮点数)或.s32(int)等来轻松改变这一点.对于"= f"(浮点数)或"= r"(int)等,return_value"= d"的约束.请注意,之前的最后一个约束(addr) - "l" - 表示64位寻址,如果使用32位寻址,则应为"r".
内联PTX可用于加载和存储变量.ld.cg和st.cg指令仅缓存L2中的数据.缓存操作符在PTX ISA 2.3文档的8.7.8.1缓存操作符一节中描述.说明或兴趣是ld和st.在CUDA中使用Inline PTX Assembly中描述了内联PTX.