如果我正确地理解了NVRTC文档中的工作流描述,下面是它的工作方式:
cuLinkCreate,cuLinkAddData,cuLinkComplete)链接PTX代码以获得cubin。然而..。从CUDA 11.3开始,NVRTC有以下API调用:
nvrtcResult nvrtcGetCUBIN ( nvrtcProgram prog, char* cubin );那么,我怎么能有一个古巴后,只汇编?
发布于 2021-10-30 21:17:18
那么,在主机端,编译后就会得到正确的机器代码,那么为什么不在设备端呢?
古巴的可用性似乎取决于你汇编的目标是什么:
compute_60 --那么您可以得到的唯一东西是PTX,它还没有特定于任何微体系结构。sm_70),那么编译可以一直进行到放置在cubin中的SASS程序集。现在,当您使用CUDA驱动程序进行链接时,您就有了一个上下文,这总是与一个物理GPU --一个具体的微体系结构相关联。所以这必然会给你一个古巴蛋白。
PS:
--dlink-time-opt。nvrtcGetCUBIN()。这似乎也影响了模块的创建,即是否可以使用PTX和CUBIN创建模块。https://stackoverflow.com/questions/69782228
复制相似问题