CUDA > Compute Capabilityを表示する実装

  • 0
    いいね
  • 0
    コメント
    動作環境
    GeForce GTX 750 Ti
    Windows 8.1 pro (64bit)
    Visual Studio Community 2013 (以下、VS)
    CUDA 7.5
    

    http://qiita.com/7of9/items/c89d00eca4b71b09b048
    においてSMが扱えるスレッド数の上限がCompute Capabilityによって変わるというのを知った。

    Compute Capabilityが何かはWebで調べれば出てくるが、CUDAの練習をかねて表示してみた。

    情報

    参考 stackoverflow

    In the runtime API, cudaGetDeviceProperties returns two fields major and minor which return the compute capability any given enumerated CUDA device.

    cudaGetDeviceProperties()についての参考 www.cs.cmu.edu

    準備

    http://qiita.com/7of9/items/e9c185351803d9794db5
    を参考にCUDAをビルドできるslnを用意する (160910_computeCapabilityとした)。

    実装と実行

    以下のコードを実装した。

    kernel.cu
    
    #include "cuda_runtime.h"
    #include "device_launch_parameters.h"
    
    #include <stdio.h>
    
    __global__ void addKernel(int *c, const int *a, const int *b)
    {
    //    int i = threadIdx.x;
    //    c[i] = a[i] + b[i];
    }
    
    int main()
    {
        cudaDeviceProp prp;
        cudaError_t cudaStatus;
    
        cudaStatus = cudaGetDeviceProperties(&prp, /*device=*/0);
        if (cudaStatus != cudaSuccess) {
            fprintf(stderr, "cudaGetDeviceProperties failed!");
            return 1;
        }
    
        printf("Compute Capability=%d.%d\r\n", prp.major, prp.minor);
    
        cudaStatus = cudaDeviceReset();
        if (cudaStatus != cudaSuccess) {
            fprintf(stderr, "cudaDeviceReset failed!");
            return 1;
        }
    
        return 0;
    }
    
    結果
    C:\CudaDev\160910_compueCapability\Debug>160910_compueCapability.exe
    Compute Capability=5.0
    

    GeForce GTX 750 Tiはわれら四天王の中でも最強

    GTX1080欲しい。