Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Jhonny06

    veterán

    válasz Bobrooney #4 üzenetére

    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 ]

Új hozzászólás Aktív témák