CUDA GPUが32ビットまたは64ビットのアドレッシングをサポートするかどうかを実行時に確認したいと思います。コンテキストの場合、私は実行時にPTXを生成するためにLLVMを使用しており、ターゲットのトリプルをnvptx
またはnvptx64
に設定するかどうかを知る必要があります。CUDAデバイスが32ビットまたは64ビットのアドレッシングをサポートするかどうかの問い合わせ
cuDeviceGetAttribute
経由で直接のクエリが表示されませんが、この情報を私に与えることができる他のクエリやヒューリスティックはありますか?
現在のCUDAツールキット(7.x以降)でサポートされているすべてのCUDA GPUは、32ビットまたは64ビットのアドレス指定をサポートしています。アプリケーションのロード時には、コンパイルされたアプリケーション/プロセスの種類(ホストとデバイスは一致している必要があります)によって決定されます。 64ビットプロセスからcudaコンテキストの初期化を実行する場合は、64ビットのコンテキストを作成する必要があります。 cudaコンテキストの初期化が32ビットプロセスから実行される場合は、32ビットのコンテキストを作成する必要があります。したがって、私はそれを試していませんが、私は単純な 'sizeof(void *)'が区別するのに十分なはずだと思います。 –