4.2_pxas——PTX汇编工具

4.2 pxas——PTX汇编工具

ptexas是把PTX编译成指定的GPU微码的工具。它在CUDA生态系统中占有独特的地位,英伟达不仅把它放到了离线工具中(开发者用来编译应用程序),还把它作为驱动程序的一部分,支持所谓的“在线编译”或者“即时编译”。

在离线编译时,如果--gpu-code命令行选项已经指定了实际的GPU架构,ptexas一般由nvcc调用。在这种情况下,命令行选项(已总结到表4-8中)会通过传送给nvcc的-Xptexas参数传递给ptexas。

表4-8 pxas的命令行选项

(续)

开发人员也可以通过调用cuModuleLoadDataEx()动态地加载PTX代码,如下。

CUresult cuModuleLoadDataEx ( CUmodule *module, const void *image, unsigned int numOptions, CUit_option *options, void **optionValues);

cuModuleLoadDataEx()使用一个指针映像,并且可以把相应的模块载入到当前的上下文。这个指针可以通过以下三种方式获得:从CUBIN或PTX或fatbin文件映射而来;作为一个NULL结尾的文本字符串传递CUBIN或PTX或fatbin文件;把一个cubin或fatbin目标文件合并到可执行资源中,并且通过操作系统调用函数(如Windows的FindResource()函数)来获取指针。选项是通过options传递的数组,并且任何相关参数都可以通过optionValues传递。总的选项的数目是由numOptions指定的。任何输出将通过optionValues返回。表4-9中给出了支持的选项。

表4-9 cuModuleLoadDataEx()的选项