4

私は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.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

1 に答える 1

5

.fileディレクティブは、デバッグ専用です。通常の状況でコードがどのようにコンパイルされるかには影響しません。したがって、それらを削除するか、完全に無視することができ、コードは、少なくともコンパイラオプション(つまり、ターゲットコードのバージョン、アーキテクチャ、およびコンパイルサイズ)によって指定されるアーキテクチャと機能の制限内で移植可能であると確信しています。

于 2013-02-01T19:21:33.087 に答える