Ero sivun ”OpenCL” versioiden välillä

Siirry navigaatioon Siirry hakuun
196 merkkiä lisätty ,  10. toukokuuta 2022
p
nvidia
p (<syntaxhighlight>)
p (nvidia)
 
(5 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{Perustietoa|en:OpenCL}}
{{Perustietoa|en:OpenCL}}
'''OpenCL''' on avoin monen valmistajan tukema standardi GPGPU-ohjelmointiin (engl. 'General-purpose computing on graphics processing units'). Tunnetuin vaihtoehto tälle lienee vain NVidian laitteissa käytettävä CUDA.
'''OpenCL''' on avoin monen valmistajan tukema standardi [[wikipedia:fi:Grafiikkasuoritin|grafiikkasuoritinten]] [[wikipedia:fi:GPGPU|GPGPU]]-ohjelmointiin (engl. 'General-purpose computing on graphics processing units'). Tunnetuin vaihtoehto tälle lienee vain [[NVIDIA]]n laitteissa käytettävä [[CUDA]].


Myös tavallisiin suorittimiin saa OpenCL-tuen, jolloin ohjelmointia voi kokeilla ilman GPU:ta. Toisaalta halvin OpenCL:ää tukeva GPU maksoi vuoden 2014 alussa vain noin 30 euroa.
Myös tavallisiin suorittimiin saa OpenCL-tuen, jolloin ohjelmointia voi kokeilla ilman grafiikkasuoritinta. Toisaalta halvin OpenCL:ää tukeva grafiikkasuoritin maksoi vuoden 2014 alussa vain noin 30 euroa.


==OpenCL-ympäristön toimivuuden tarkistava ohjelma==
==OpenCL-ympäristön toimivuuden tarkistava ohjelma==
Rivi 55: Rivi 55:
             printf("clGetDeviceIDs epäonnistui alustalle %i.\n", i);
             printf("clGetDeviceIDs epäonnistui alustalle %i.\n", i);
     }
     }
    return 0;
}
}
</syntaxhighlight>
</syntaxhighlight>
Rivi 63: Rivi 65:
OpenCL-ohjelman kääntämiseen (mutta ei linkittämiseen valmiiksi ohjelmaksi) riittävät OpenCL-otsakkeet. Ne asentuvat komennolla
OpenCL-ohjelman kääntämiseen (mutta ei linkittämiseen valmiiksi ohjelmaksi) riittävät OpenCL-otsakkeet. Ne asentuvat komennolla


  yum install opencl-utils-devel
  [[yum]] install opencl-utils-devel


Tämän jälkeen komento
Tämän jälkeen komento


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


tuottaa tiedoston <tt>hae-alustat.o</tt>
tuottaa tiedoston <tt>hae-alustat.o</tt>
Rivi 88: Rivi 90:
  Alustan 0 laite 0 toimii.
  Alustan 0 laite 0 toimii.


OpenCL vaatii Intelin dokumentaation mukaan prosessorin, jossa on vähintään SSE4.1-tuki; testatusti kuitenkin vasta SSE4.2 riittää. Tämän tarkistaa helpoiten komennolla
OpenCL vaatii Intelin dokumentaation mukaan suorittimen, jossa on vähintään [[wikipedia:fi:SSE|SSE]]4.1-tuki; testatusti kuitenkin vasta SSE4.2 riittää. Tämän tarkistaa helpoiten komennolla


  fgrep sse4_2 /proc/cpuinfo
  [[fgrep]] sse4_2 /proc/cpuinfo


Virtuaalikoneissa on huomattava, että isäntäkoneen SSE-tuki ei välttämättä näy virtuaalikoneelle. Esimerksi VirtualBoxissa tämä vaatii vähintään version 4.3.8, jonka lisäksi tuki on erikseen otettava käyttöön komennoilla
[[Virtuaalikone]]issa on huomattava, että isäntäkoneen SSE-tuki ei välttämättä näy virtuaalikoneelle. Esimerksi [[VirtualBox]]issa tämä vaatii vähintään version 4.3.8, jonka lisäksi tuki on erikseen otettava käyttöön komennoilla


  VBoxManage setextradata <vkoneen-nimi> VBoxInternal/CPUM/SSE4.1 1
  [[VBoxManage]] setextradata <vkoneen-nimi> VBoxInternal/CPUM/SSE4.1 1
  VBoxManage setextradata <vkoneen-nimi> VBoxInternal/CPUM/SSE4.2 1
  VBoxManage setextradata <vkoneen-nimi> VBoxInternal/CPUM/SSE4.2 1


Riittävän SSE-tuen puuttuessa edelläoleva testiohjelma löytää alustan ja laitteen, mutta epäonnistuu <tt>clCreateContext</tt>-funktiossa.
Riittävän SSE-tuen puuttuessa edelläoleva testiohjelma löytää alustan ja laitteen, mutta epäonnistuu <tt>clCreateContext</tt>-funktiossa.


====NVidian OpenCL-ympäristö====
====NVIDIAn OpenCL-ympäristö====


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


  yum install kmod-nvidia
  yum install kmod-nvidia
Rivi 107: Rivi 109:
Koneen uudelleenkäynnistäminen varmistaa moduulin asentumisen.
Koneen uudelleenkäynnistäminen varmistaa moduulin asentumisen.


{{Ohjelmointikielet}}
[[Luokka:Laitteisto]]
[[Luokka:Laitteisto]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:X]]
[[Luokka:X]]
3 173

muokkausta

Navigointivalikko