2

CUDA ツールキットを使用するプログラムをコンパイルし、必要な計算機能をサポートしていないハードウェア、または CUDA インターフェイスをサポートする NVIDIA GPU さえも持っていないハードウェアでプログラムを実行すると仮定すると、プログラミングからどのように知ることができますか?レベル?CPU プロシージャにフォールバックするため、またはエラー メッセージを表示するため。

4

1 に答える 1

4

サンプルが既にインストールされている CUDA ツールキットをお持ちの場合は、deviceQuery プロジェクトを確認することをお勧めします。これは、機能のメジャー/マイナー バージョン番号などの属性をデバイスに照会する方法の例を示しています。

短いスニペットが添付されています:

    cudaSetDevice(dev);
    cudaDeviceProp deviceProp;
    cudaGetDeviceProperties(&deviceProp, dev);

    printf("\nDevice %d: \"%s\"\n", dev, deviceProp.name);

    // Console log
    cudaDriverGetVersion(&driverVersion);
    cudaRuntimeGetVersion(&runtimeVersion);
    printf("  CUDA Driver Version / Runtime Version          %d.%d / %d.%d\n", driverVersion/1000, (driverVersion%100)/10, runtimeVersion/1000, (runtimeVersion%100)/10);
    printf("  CUDA Capability Major/Minor version number:    %d.%d\n", deviceProp.major, deviceProp.minor);

システムに GPU がない場合は、以下のコード スニペットを使用できますが、その時点で静的ライブラリが必要になると思います。

int deviceCount = 0;
cudaError_t error_id = cudaGetDeviceCount(&deviceCount);

if (error_id != cudaSuccess)
{
    printf("cudaGetDeviceCount returned %d\n-> %s\n", (int)error_id, cudaGetErrorString(error_id));
    exit(EXIT_FAILURE);
}

// This function call returns 0 if there are no CUDA capable devices.
if (deviceCount == 0)
{
    printf("There are no available device(s) that support CUDA\n");
}
else
{
    printf("Detected %d CUDA Capable device(s)\n", deviceCount);
}
于 2013-02-14T00:14:04.273 に答える