使用特定于计算机的“.file”路径 - CUDA .ptx 文件是否可移植
With machine-specific `.file` paths - are CUDA .ptx files portable?
我正在研究cudaDecodeD3D9示例以了解CUDA的工作原理,并在编译时从.cu文件生成一个.ptx文件。据我了解,这个 .ptx 文件是一个中间表示形式,将针对任何特定的 GPU 及时编译。此示例使用类 cudaModuleMgr 通过 cuModuleLoadDataEx 加载此文件。
.ptx文件是文本格式的,我可以看到它的顶部是我机器上的一堆硬编码路径,包括我的用户文件夹,即:
.file 1 "C:/Users/******/AppData/Local/Temp/tmpxft_00002abc_00000000-7_NV12ToARGB_drvapi.cudafe2.gpu"
.file 2 "c:program files (x86)microsoft visual studio 10.0vcincludecodeanalysissourceannotations.h"
.file 3 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/includecrt/device_runtime.h"
.file 4 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/includehost_defines.h"
.file 5 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/includebuiltin_types.h"
.file 6 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includedevice_types.h"
.file 7 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includehost_defines.h"
.file 8 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includedriver_types.h"
.file 9 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includesurface_types.h"
.file 10 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includetexture_types.h"
.file 11 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includevector_types.h"
.file 12 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includebuiltin_types.h"
.file 13 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/includedevice_launch_parameters.h"
.file 14 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includecrtstorage_class.h"
.file 15 "c:users******desktopcudadecodesample3_imagingcudadecoded3d9cudaProcessFrame.h"
.file 16 "c:program files (x86)nvidia gpu computing toolkitcudav5.0includemath_functions.h"
.file 17 "C:/Users/******/Desktop/CudaDecodeSample/3_Imaging/cudaDecodeD3D9/NV12ToARGB_drvapi.cu"
.file 18 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/includecommon_functions.h"
那么我的问题是:由于此文件是在编译时创建的,由于所有这些硬编码路径,它是否只能在我的机器上运行?我应该怎么做才能确保程序可以在任何计算机上运行,即使没有安装 CUDA SDK?
.file 指令仅用于调试。它不会影响代码在正常情况下的编译方式。所以我非常确定你可以剥离或完全忽略它们,代码将是可移植的,至少在你的编译器选项规定的架构和功能限制内(所以目标代码版本、架构和编译大小)。
相关文章:
- 编译时未启用intel oneApi CUDA支持
- 在cuda线程之间共享大量常量数据
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- C++A*算法并不总是在路径中具有目标节点
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- CUDA内核和数学函数的显式命名空间
- 从函数角度看ID到文件路径的内部与外部映射
- CUDA:统一内存和指针地址的更改
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 调试 CUDA MMU 故障
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 如何转换真实路径 CString c++
- 使用特定于计算机的“.file”路径 - CUDA .ptx 文件是否可移植