Posted on

Install using runfile

$ wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
$ sudo sh cuda_11.0.3_450.51.06_linux.run

Add to Global Environment Variables

Make your /etc/environment file look like the following and then restart the OS. This is only necessary if you would like to use CLion for CUDA development.

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/cuda-11.0/bin"
LD_LIBRARY_PATH="/usr/local/cuda-11.0/lib"

Some Notes

For some GPU cards, for example, GTX970, it’s impossible to boot the system when connected to a 4K display. So you have to disable the default NVIDIA GPU driver and install the official one.

First CUDA Program!

#include <cstdio>
#define SIZE 1024

__global__ void VectorAdd(int *a, int *b, int *c, int n) {
    int i = threadIdx.x;

    if(i < n)
        c[i] = a[i] + b[i];
}

int main() {
    int *a, *b, *c;

    cudaMallocManaged(&a, SIZE * sizeof(int));
    cudaMallocManaged(&b, SIZE * sizeof(int));
    cudaMallocManaged(&c, SIZE * sizeof(int));

    for(int i = 0; i < SIZE; ++i) {
        a[i] = i;
        b[i] = i;
        c[i] = 0;
    }

    VectorAdd <<<1, SIZE>>> (a, b, c, SIZE);

    cudaDeviceSynchronize();

    for(int i = 0; i < 10; ++i)
        printf("c[%d] = %d\n", i, c[i]);

    cudaFree(a);
    cudaFree(b);
    cudaFree(c);

    return 0;
}

References

  1. https://developer.nvidia.com/cuda-downloads
  2. https://www.jetbrains.com/help/clion/cuda-projects.html#custom-host-compiler
  3. https://www.youtube.com/watch?v=2EbHSCvGFM0

Leave a Reply

Your email address will not be published. Required fields are marked *