|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
www.hwupgrade.it
Iscritto dal: Jul 2001
Messaggi: 75173
|
Link alla notizia: http://www.hwupgrade.it/news/skvideo...uda_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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2008
Messaggi: 2702
|
Figo, ora lo provo con la G105m del mio nuovo notebook.
__________________
MacBook Pro 16" M1Pro/16/512, Galaxy S24 Ultra 1TB. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2008
Città: Bergamo
Messaggi: 2142
|
Lo provi per fare cosa?
![]()
__________________
Ho trattato positivamente con nocciolina20, Rusty81, toscano123, mapo94, djgusmy85, TheZeb, arma1977 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2002
Città: Torino
Messaggi: 2826
|
Be sono librerie per C, e sono strutturate sopratutto per fare calcoli puri...
![]() |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Codice:
#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; } 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. Codice:
// 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); } ![]() Ultima modifica di mjordan : 11-05-2009 alle 15:05. |
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Jul 2005
Messaggi: 30
|
Quote:
cmq sta andando avanti a razzo nvidia ..... |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2008
Città: Bergamo
Messaggi: 2142
|
così a razzo che tra poco scoprono un nuovo satellite della terra...
__________________
Ho trattato positivamente con nocciolina20, Rusty81, toscano123, mapo94, djgusmy85, TheZeb, arma1977 |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jul 2005
Messaggi: 30
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:52.