Új hozzászólás Aktív témák
-
Bobrooney
senior tag
Üdv mindenkinek!
Remélem jól láttam, hogy nincs még ilyen téma.
Remélem lesz aki már próbálkozott ezzel. Ha igen, lenne sok kérdésem -
Bobrooney
senior tag
Amint látom, ebből siker Topic nem lesz
-
Bobrooney
senior tag
Engem alapból az érdekelne, hogy:
Milyen környezetben kell írnom? Visual Studio C++? Mert a CUDA alapból rak fel vmi dev.-et de pl azt sem tudtam h kell belőni.
Szóval hogy is kell valami futtatható progit írni? (igen lehet h naon alap hülye kérdés de nekem ez nagyon nem tiszta). -
Jhonny06
veterán
Mivel az nvcc jelenleg csak a VS 9.0-át támogatja, ezért ha Visual Studio 2010 alatt akarsz dolgozni, akkor fent kell lennie a 2008-nak is. Az Express verzió nem elég, a Professional ugyan fizetős, de be lehet szerezni innen-onnan, gondolom érted, nem részletezném.
Tehát ami kell és egyben a telepítési sorrend:
- Visual Studio 2008 (aztán a SP1, ez ingyenesen letölthető a Microsoft Download Centerből)
- Visual Studio 2010
- NVIDIA Driver (ez feltételezhetően fent van, mivel NVIDIA kártya alapkövetelmény a CUDA-hoz, azért ellenőrizd a gyártó oldalán, hogy támogatja-e, de az összes 2007 végétől megjelenő NVIDIA VGA támogatja, tehát valószínű)
- CUDA Toolkit (Innen)
- GPU SDK (Ugyanott van, ahol a Toolkit, csak lentebb a táblázatban)
- Parallel Nsight Host (Innen, létre kell hozni egy ingyenes felhasználót, hogy letölthesd)
- Parallel Nsight Monitor (Ugyanaz, mint az előző)
Itt találsz egy kis beállítási segédletet, miután telepítetted a cuccokat.
A végére meg egy normális Hello World, amivel kipróbálhatod, hogy minden oké-e, de ha az útmutatót követed, akkor nem lesz gond.
#include <stdio.h>
const int N = 16;
const int blocksize = 16;
__global__
void hello(char *a, int *b)
{
a[threadIdx.x] += b[threadIdx.x];
}
int main()
{
char a[N] = "Hello \0\0\0\0\0\0";
int b[N] = {15, 10, 6, 0, -11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
char *ad;
int *bd;
const int csize = N*sizeof(char);
const int isize = N*sizeof(int);
printf("%s", a);
cudaMalloc( (void**)&ad, csize );
cudaMalloc( (void**)&bd, isize );
cudaMemcpy( ad, a, csize, cudaMemcpyHostToDevice );
cudaMemcpy( bd, b, isize, cudaMemcpyHostToDevice );
dim3 dimBlock( blocksize, 1 );
dim3 dimGrid( 1, 1 );
hello<<<dimGrid, dimBlock>>>(ad, bd);
cudaMemcpy( a, ad, csize, cudaMemcpyDeviceToHost );
cudaFree( ad );
printf("%s\n", a);
return EXIT_SUCCESS;
}[ Módosította: Ndruu ]
-
Bobrooney
senior tag
Megszenvedtem vele, bár elviekben megy.
Ami az oldalon van kód, nekem arra vmi errort dob ki, de most még barátkoznom kell a fordítóval.Köszi a leírást!
-
Bobrooney
senior tag
Na a leírás tökéletes megy
Oktató anyagot tudsz esetleg? Mondjuk gondolom magyarról ne nagyon álmodjak -
Bobrooney
senior tag
Hello!
Figyi, nem tudod, a CUDA jó ugye pl régebbi fordítóval is, nem szeretnék fapados C-vel tolni, Visual 6.0-ra gondoltam pl.
És még annyit, hogy, csak olyan gépeken fut a program (pl amikor a kártya adatait kérdeztem le) melyeken van az SDK telepítve?Köszi a választ! Zoli
-
Jhonny06
veterán
válasz Bobrooney #13 üzenetére
Ezt és ezt a könyvet ajánlom, ilyen témában szerintem normális forrást magyarul nem fogsz találni, úgyhogy mindenképpen jó, ha van megfelelő angol tudás. Ezek a könyvek amúgy nem elérhetőek itthon és nem is ingyenesek, de be lehet szerezni őket innen-onnan, természetesen tele van a net ingyenes forrásokkal is, ha rákeresel a megfelelő kulcsszavakra, gyorsan lehet találni párat.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Bobrooney #14 üzenetére
Az SDK sosem kötelező, a Toolkit viszont igen, ez tartalmazza a CUDA C fordítót és a futásidejű környezetet. A VS 6.0 nagyon régi, a 9.0 toolkit kell hozzá, azaz Visual Studio 2008, ez amúgy minimum követelmény is, azt hiszem. Már csak azért is, mert a CUDA, mint technológia, 2007 óta van jelen. De régebbivel amúgy sem érdemes próbálkozni, könnyen be lehet szerezni, ha jó helyen keresgélsz.
[ Szerkesztve ]
-
Bobrooney
senior tag
Igaz, hogy csak én irogatok ide, de hátha más is ide téved, Linux-ra is fel fogjuk telepíteni, majd leírom ide részletesen, mit és hogyan kell, valakinek még jól jöhet
-
-
Sidorovich
senior tag
Sziasztok!
Valaki tudna írni/mutatni egy példát arra, hogyan kellene random számokat generálni GPU-n a CUDA Thrust könyvtárral? 1 órája Googlezok, de sehol nem találtam egy használható, egyszerű példát.
Egy olyan alap programot szeretnék írni, ami lefoglal N int-nek (tömb) helyet a GPU memóriában, random számokkal GPU-n felölti, majd ezt visszamásolja a host memóriába egy tömbbe.
Előre is köszönöm a segítséget!
[ Szerkesztve ]
-
Whysperer
addikt
Sziasztok. Erre tudna valaki ötletet adni? [link]
ASUS b550 a gaming/ Ryzen 5800x3d/arctic liquid freezer ii 280/EVGA 550w GS/ SSD240+120Gb/g skill aegis 32 gb 3200 mhz / RX6800/Regnum RG6V TG
-
Whysperer
addikt
Sziasztok. Segítségetekewt szeretném kérni. MAYA 3d-be dolgozunk és Nucleusos Simulációnál nincs benen alapból az ,hogy a CUDA-t használja. Viszont mint itt is [link] be lehet kapcsolni valahogy ezt. Tudnátok segítséget nyújtani ,hogy merre és hogyan tudjuk ezt elérni?
ASUS b550 a gaming/ Ryzen 5800x3d/arctic liquid freezer ii 280/EVGA 550w GS/ SSD240+120Gb/g skill aegis 32 gb 3200 mhz / RX6800/Regnum RG6V TG
Új hozzászólás Aktív témák
- Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Milyen NAS-t vegyek?
- Milyen monitort vegyek?
- HP ProLiant MicroServer Gen8
- Helldivers 2 (PC, PS5)
- Milyen TV-t vegyek?
- Gördeszka topic
- Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Xbox Series X|S
- További aktív témák...