Ero sivun ”OpenCL” versioiden välillä
(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...) |
(ei mitään eroa)
|
Versio 5. maaliskuuta 2014 kello 15.07
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
NVidian OpenCL-tuen saat käyttöön RPM Fusion -pakettivarastosta komennolla
yum install kmod-nvidia
Boottaamalla koneen voi varmistaa tämän toimivuuden.