CUDA C või C++ käivitamine Jupyteris (Google Colab)

CUDA on NVIDIA paralleelarvutusarhitektuur, mis võimaldab GPU võimsust kasutades järsult suurendada andmetöötluse jõudlust. Colabiga saate CUDA C/C++ GPU-l tasuta töötada.

1
Looge uus märkmik. Kliki siia.

2
Klõpsake akna paremas alanurgas nuppu Uus Python 3 märkmik.

3
Klõpsake Käitusaeg > Muuda käitusaja tüüpi.

4
Valige rippmenüüst GPU ja klõpsake nuppu Salvesta.

5
Desinstallige kõik CUDA varasemad versioonid täielikult. (Rea algusesse lisatud ‘!’ võimaldab seda käivitada käsurea käsuna.)!apt-get –purge remove cuda nvidia* libnvidia-*!dpkg -l | grep cuda- | awk ‘{print $2}’ | xargs -n1 dpkg –purge!apt-get remove cuda-*!apt autoremove!apt-get update

6
Installige CUDA versioon 9.!wget https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64 -O cuda-repo-ubuntu1604- 9-2-local_9.2.88-1_amd64.deb!dpkg -i cuda-repo-ubuntu1604-9-2-local_9.2.88-1_amd64.deb!apt-key add /var/cuda-repo-9-2-local/ 7fa2af80.pub!apt-get update!apt-get install cuda-9.2

7
Kontrollige oma versiooni, kasutades seda koodi:!nvcc –version See peaks printima midagi sellist:nvcc: NVIDIA (R) Cuda kompilaatori draiver Autoriõigus (c) 2005-2018 NVIDIA Corporation, ehitatud Wed_Apr_11_23:16:29_CDT_2018 Cuda kompileerimistööriistadele, väljalase 92. , V9.2.88

8
Käivitage antud käsk, et installida väike laiendus nvcc käitamiseks sülearvuti rakkudest.!pip install git+git://github.com/andreinechaev/nvcc4jupyter.git

9
Laadige laiendus, kasutades seda koodi:%load_ext nvcc_plugin

10
Käivitage allolev kood, et kontrollida, kas CUDA töötab. CUDA C/C++ koodi käitamiseks märkmikus lisage laiendus %%cu koodi algusesse.%%cu#include #include __global__ void add(int *a, int *b, int *c) {*c = *a + *b;}int main() {int a, b, c;// muutujate a, b & cint *d_a, *d_b, *d_c hosti koopiad; // muutujate a, b & cint size = sizeof(int) seadmekoopiad;// Eraldage ruumi a, b, ccudaMalloc((void **)&d_a, size);cudaMalloc((void **)&d_b , suurus);cudaMalloc((void **)&d_c, size);// Sisestusväärtuste seadistamine c = 0;a = 3;b = 5;// Sisendite kopeerimine seadmessecudaMemcpy(d_a, &a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, &b, size, cudaMemcpyHostToDevice);// Käivita add() kernel GPUadd’is<<<1,1>>>(d_a, d_b, d_c);// Kopeeri tulemus tagasi hostcudasse. Error err = cudaMemcpy(&c, d_c, suurus, cudaMemcpyDeviceToHost);  if(err!=cudaSuccess) {      printf(“CUDA viga hostile kopeerimisel: %sn”, cudaGetErrorString(err));  }printf(“tulemus on %d n”,c);// CleanupcudaFree(d_a);cudaFree(d_b);cudaFree(d_c);return 0;}Kui kõik läks hästi, see kood peaks väljastama: tulemus on 8n.