Являются ли файлы CUDA .ptx переносимыми?

Я изучаю образец cudaDecodeD3D9 чтобы узнать, как работает CUDA, и при компиляции он генерирует файл .ptx из файла .cu. Этот файл .ptx, насколько я понимаю, является промежуточным представлением, которое будет скомпилировано как раз вовремя для любого конкретного графического процессора. В примере используется класс 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.0\vc\include\codeanalysis\sourceannotations.h".file   3   "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\crt/device_runtime.h".file   4   "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\host_defines.h".file   5   "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\builtin_types.h".file   6   "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\device_types.h".file   7   "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\host_defines.h".file   8   "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\driver_types.h".file   9   "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\surface_types.h".file   10  "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\texture_types.h".file   11  "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\vector_types.h".file   12  "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\builtin_types.h".file   13  "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\device_launch_parameters.h".file   14  "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\crt\storage_class.h".file   15  "c:\users\******\desktop\cudadecodesample\3_imaging\cudadecoded3d9\cudaProcessFrame.h".file   16  "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\math_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/include\common_functions.h"

Мой вопрос заключается в следующем: поскольку этот файл создается во время компиляции, будет ли он работать только на моем компьютере из-за всех этих жестко закодированных путей? Что я должен сделать, чтобы программа работала на любом компьютере, даже если CUDA SDK не установлен?

4

Решение

Директива .file предназначена только для отладки. Это не влияет на то, как код будет компилироваться при нормальных обстоятельствах. Поэтому я совершенно уверен, что вы можете удалить их или просто полностью игнорировать, и код будет переносимым, по крайней мере, в пределах ограничений архитектуры и функций, определяемых параметрами вашего компилятора (например, целевая версия кода, архитектура и размер компиляции).

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]