Toleo la PoCL 3.1 lenye utekelezaji huru wa kiwango cha OpenCL

Toleo la mradi wa PoCL 3.1 (Portable Computing Language OpenCL) limewasilishwa, ambalo linakuza utekelezaji wa kiwango cha OpenCL ambacho hakitegemei watengenezaji wa vichapuzi vya michoro na kuruhusu matumizi ya viunga mbalimbali vya nyuma kwa ajili ya kutekeleza kernels za OpenCL kwenye aina tofauti za michoro na kati. wasindikaji. Nambari ya mradi inasambazwa chini ya leseni ya MIT. Inaauni kazi kwenye majukwaa ya X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU na vichakataji mbalimbali maalum vya ASIP (Programu-Maelekezo Maalum ya kuweka) na vichakataji vya TTA (Usanifu Uliochochewa) wenye usanifu wa VLIW.

Utekelezaji wa mkusanyaji wa kernel ya OpenCL umejengwa kwa msingi wa LLVM, na Clang inatumika kama sehemu ya mbele ya OpenCL C. Ili kuhakikisha utekelevu na utendakazi ufaao, kikusanyaji cha OpenCL kernel kinaweza kutoa vitendaji mchanganyiko vinavyoweza kutumia nyenzo mbalimbali za maunzi kusawazisha utekelezaji wa msimbo, kama vile VLIW, superscalar, SIMD, SIMT, multi-core na multi-threading. Kuna usaidizi kwa viendeshaji vya ICD (Dereva ya Mteja Inayosakinishwa). Kuna sehemu za nyuma za kusaidia utendakazi kupitia CPU, ASIP (TCE/TTA), GPU kulingana na usanifu wa HSA na NVIDIA GPU (kupitia libcuda).

Katika toleo jipya:

  • Usaidizi ulioongezwa kwa Clang/LLVM 15.0.
  • Usaidizi wa uwakilishi wa kati wa SPIR-V shader ulioboreshwa kwa viendeshaji vya CPU na CUDA.
  • Kiendeshi cha maunzi maalum (CL_DEVICE_TYPE_ACCELERATOR) na vifaa maalum (CL_DEVICE_TYPE_CUSTOM) ambavyo havitumii utungaji mtandaoni kimeundwa upya kwa kiasi kikubwa. Viendeshi vya accel na ttasim vimeunganishwa kuwa kiendeshi kipya cha AlmaIF.
  • Kazi inaendelea kwa kiendeshi cha API ya michoro ya Vulkan.
  • Utekelezaji wa kimsingi wa kiendelezi cha cl_khr_command_buffer unapendekezwa, ambayo hukuruhusu kuandika mlolongo wa amri za OpenCL kwa utekelezaji katika simu moja.

Chanzo: opennet.ru

Kuongeza maoni