Ero sivun ”OpenCL” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Ak: Uusi sivu: Tämä sivu on kesken. Grafiikkaprosessorien (GPU) käyttöä yleiseen laskentaan, ei välttämättä pelkkään grafiikan tuottamiseen, kutsutaan nimellä GPGPU (engl. 'General-p...)
 
Rivi 44: Rivi 44:


tuottaa tiedoston <tt>hae-alustat.o</tt>
tuottaa tiedoston <tt>hae-alustat.o</tt>
Seuraavaksi tarvitaan pari pakettia riippuvuuksien vuoksi
yum install lsb-core-amd64 libpng12
Lataa osoitteesta http://software.intel.com/en-us/vcsource/tools/opencl-sdk-xe tiedosto "64-bit SDK for Linux". Pura saamasi .tgz -tiedosto normaalisti <tt>tar xzf tiedostonnimi.tgz</tt> -komennolla. Tuloksena on hakemisto. Aja sen sisältämä <tt>install-cpu.sh</tt>-tiedosto. Nyt ohjelman kääntyy ja toimii:
gcc -I/usr/include/opencl-utils/include -o hae-alustat hae-alustat.c -lOpenCL
./hae-alustat
tulostaa
clGetPlatformIDs löysi 1 alustaa.
Alustan 0 toimittaja on Intel(R) Corporation.


NVidian OpenCL-tuen saat käyttöön [[RPM Fusion]] -pakettivarastosta komennolla
NVidian OpenCL-tuen saat käyttöön [[RPM Fusion]] -pakettivarastosta komennolla
Rivi 50: Rivi 64:


Boottaamalla koneen voi varmistaa tämän toimivuuden.
Boottaamalla koneen voi varmistaa tämän toimivuuden.
OpenCL toimii prosessorissa, jossa on vähintään SSE4.1-tuki. Tämän tarkistaa helpoiten komennolla
fgrep sse4_1 /proc/cpuinfo

Versio 6. maaliskuuta 2014 kello 14.13

Tämä sivu on kesken.

Grafiikkaprosessorien (GPU) käyttöä yleiseen laskentaan, ei välttämättä pelkkään grafiikan tuottamiseen, kutsutaan nimellä GPGPU (engl. 'General-purpose computing on graphics processing units'). GPGPU-ohjelmointiin on useita ohjelmointikieliä, joista OpenCL on avoin monen valmistajan tukema standardi. Sen tunnetuin kilpailija lienee vain NVidian laitteissa käytettävä CUDA. Myös tavallisiin suorittimiin saa OpenCL-tuen, jolloin ohjelmointia voi kokeilla myös ilman GPU:ta. Toisaalta halvin OpenCL:ää tukeva GPU maksoi vuoden 2014 alussa vain noin 30 euroa.

OpenCL-ympäristön toimivuuden tarkistava ohjelma

Seuraava ohjelma tulostaa OpenCL:ää suorittamaan pystyvät alustat. Oletetaan jatkossa tämän koodin olevan nimellä hae-alustat.c

#include <stdio.h>
#include <stdlib.h>
#include <CL/cl.h>

int main()
{
    int i;
    cl_int ret;

    // Haetaan alustat (enintään 10).
    cl_uint alusta_lkm;
    cl_platform_id alusta_id[10];
    ret = clGetPlatformIDs(10, alusta_id, &alusta_lkm);
    if (ret != CL_SUCCESS) {
        printf("clGetPlatformIDs epäonnistui.\n");
        exit(1);
    }
    // Haetaan alustojen valmistajien nimet (max. 1000 merkkiä)
    printf("clGetPlatformIDs löysi %i alustaa.\n", alusta_lkm);
    for (i=0; i<alusta_lkm; i++) {
        char tmp[1000];
        clGetPlatformInfo(alusta_id[i], CL_PLATFORM_VENDOR, 1000, tmp, NULL);
        printf("Alustan %i toimittaja on %s.\n", i, tmp);
   }
}

OpenCL-ympäristö Fedora 20 -jakeluun

OpenCL-ohjelman kääntämiseen (mutta ei linkittämiseen valmiiksi ohjelmaksi) riittävät OpenCL-otsakkeet. Ne asentuvat komennolla

yum install opencl-utils-devel

Tämän jälkeen komento

gcc -I/usr/include/opencl-utils/include -c hae-alustat.c

tuottaa tiedoston hae-alustat.o

Seuraavaksi tarvitaan pari pakettia riippuvuuksien vuoksi

yum install lsb-core-amd64 libpng12

Lataa osoitteesta http://software.intel.com/en-us/vcsource/tools/opencl-sdk-xe tiedosto "64-bit SDK for Linux". Pura saamasi .tgz -tiedosto normaalisti tar xzf tiedostonnimi.tgz -komennolla. Tuloksena on hakemisto. Aja sen sisältämä install-cpu.sh-tiedosto. Nyt ohjelman kääntyy ja toimii:

gcc -I/usr/include/opencl-utils/include -o hae-alustat hae-alustat.c -lOpenCL
./hae-alustat

tulostaa

clGetPlatformIDs löysi 1 alustaa. Alustan 0 toimittaja on Intel(R) Corporation.

NVidian OpenCL-tuen saat käyttöön RPM Fusion -pakettivarastosta komennolla

yum install kmod-nvidia

Boottaamalla koneen voi varmistaa tämän toimivuuden.

OpenCL toimii prosessorissa, jossa on vähintään SSE4.1-tuki. Tämän tarkistaa helpoiten komennolla

fgrep sse4_1 /proc/cpuinfo