PDA

View Full Version : NVIDIA rilascia la versione 2.2 del toolkit CUDA


Redazione di Hardware Upg
11-05-2009, 13:32
Link alla notizia: http://www.hwupgrade.it/news/skvideo/nvidia-rilascia-la-versione-22-del-toolkit-cuda_28931.html

La società californiana continua a spingere l'acceleratore sulla propria piattaforma GPGPU, introducendo la versione 2.2 del toolkit e SDK di CUDA

Click sul link per visualizzare la notizia.

gpat
11-05-2009, 13:37
Figo, ora lo provo con la G105m del mio nuovo notebook.

cervus92
11-05-2009, 13:57
Figo, ora lo provo con la G105m del mio nuovo notebook.

Lo provi per fare cosa? :D

Spyto
11-05-2009, 14:09
Lo provi per fare cosa? :D
Be sono librerie per C, e sono strutturate sopratutto per fare calcoli puri... :D

mjordan
11-05-2009, 14:45
Be sono librerie per C, e sono strutturate sopratutto per fare calcoli puri... :D


#include <cuda.h>
#include <stdio.h>

// Prototypes
__global__ void helloWorld(char*);

// Host function
int
main(int argc, char** argv)
{
int i;

// desired output
char str[] = "Hello World!";

// mangle contents of output
// the null character is left intact for simplicity
for(i = 0; i < 12; i++)
str[i] -= i;

// allocate memory on the device
char *d_str;
size_t size = sizeof(str);
cudaMalloc((void**)&d_str, size);

// copy the string to the device
cudaMemcpy(d_str, str, size, cudaMemcpyHostToDevice);

// set the grid and block sizes
dim3 dimGrid(2); // one block per word
dim3 dimBlock(6); // one thread per character

// invoke the kernel
helloWorld<<< dimGrid, dimBlock >>>(d_str);

// retrieve the results from the device
cudaMemcpy(str, d_str, size, cudaMemcpyDeviceToHost);

// free up the allocated memory on the device
cudaFree(d_str);

// everyone's favorite part
printf("%s\n", str);

return 0;
}

// Device kernel
__global__ void
helloWorld(char* str)
{
// determine where in the thread grid we are
int idx = blockIdx.x * blockDim.x + threadIdx.x;

// unmangle output
str[idx] += idx;
}


Hai provato a fare qualcosa con OpenCL già?
EDIT: Segnalo che CUDA 2.2 viene installato di default con i 185.85 WHQL che tra l'altro sono disponibili anche per notebook (ovviamente non parlo dell'SDK e del toolkit) ;)
Mi piace molto il thread model basato su "grid" e il concetto di kernels, in CUDA: veramente elegante.

// Kernel definition
__global__ void MatAdd(float A[N][N], float B[N][N], float C[N][N])
{
int i = blockIdx.x * blockDim.x + threadIdx.x;
int j = blockIdx.y * blockDim.y + threadIdx.y;
if (i < N && j < N)
C[i][j] = A[i][j] + B[i][j];
}

int main()
{
// Kernel invocation
dim3 dimBlock(16, 16);
dim3 dimGrid((N + dimBlock.x – 1) / dimBlock.x, (N + dimBlock.y – 1) / dimBlock.y);
MatAdd<<<dimGrid, dimBlock>>>(A, B, C);
}


256 threads power. :eek:

ledlama
11-05-2009, 15:02
Lo provi per fare cosa? :D


Be sono librerie per C, e sono strutturate sopratutto per fare calcoli puri... :D

cosa gli rispondi a fare!!!! voleva prenderti in giro! troll maledetti

cmq sta andando avanti a razzo nvidia .....

cervus92
11-05-2009, 15:33
cosa gli rispondi a fare!!!! voleva prenderti in giro! troll maledetti

cmq sta andando avanti a razzo nvidia .....

così a razzo che tra poco scoprono un nuovo satellite della terra...

ledlama
11-05-2009, 16:49
così a razzo che tra poco scoprono un nuovo satellite della terra...

-_-' :rolleyes: