Ce este OpenCL?
Standardul OpenCL pentru programare paralelă a fost dezvoltat de consorțiul industrial Khronos Group pentru a aborda provocările legate de programarea platformelor de calcul multi-core și eterogene. Specificația OpenCL definește un singur model de programare și un set de abstracțiuni la nivel de sistem care sunt acceptate de toate platformele hardware conforme cu standardul. Aceasta înseamnă că un inginer de software poate învăța un singur model de programare și îl poate utiliza direct pe dispozitive de la mai mulți furnizori.
OpenCL oferă un limbaj de programare și o API de execuție pentru a sprijini dezvoltarea de software apropiat de metal, care este atât eficient, cât și portabil. În plus, OpenCL oferă abstracțiuni hardware de nivel scăzut care permit implementărilor OpenCL să expună multe detalii ale hardware-ului subiacent. Aceste abstracțiuni de nivel scăzut sunt modelele de platformă, memorie și execuție descrise în specificațiile OpenCL. Înțelegerea modului în care aceste concepte se traduc în implementări fizice pe un FPGA este necesară pentru optimizarea aplicațiilor.
Acest capitol oferă o trecere în revistă a modelului de platformă OpenCL și a extensiilor sale la dispozitivele FPGA. Acesta explică maparea platformei OpenCL și a modelului de memorie OpenCL într-o implementare generată de SDAccel. Acest capitol va menționa, de asemenea, modul în care FPGA-urile contemporane pot fi valorificate pentru a atinge niveluri ridicate de performanță utilizând instrumentul Xilinx® SDAccel.
.