Toleo la PoCL 5.0 lenye utekelezaji huru wa kiwango cha OpenCL

Kutolewa kwa mradi wa PoCL 5.0 (Lugha ya Kompyuta Kubebeka OpenCL) kumechapishwa, kuendeleza utekelezaji wa kiwango cha OpenCL ambacho hakijitegemei na watengenezaji wa vichapuzi vya michoro na kuruhusu matumizi ya viambajengo mbalimbali vya kutekeleza kernels za OpenCL kwenye aina tofauti za michoro na vichakataji vya kati. . 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:

  • Mandhari mpya ya "Kidhibiti cha Mbali" imetekelezwa, iliyoundwa ili kupanga kompyuta iliyosambazwa kwa kuhamisha uchakataji wa amri za OpenCL kwa wapangishaji wengine kwenye mtandao unaoendesha mchakato wa pocld ya usuli.
  • Kiendeshi cha CUDA hutekelezea vipengele na viendelezi vya ziada vya OpenCL 3.0, kama vile utendakazi wa atomiki, vipengee vilivyopimwa, intel_sub_group_shuffle, intel_sub_group_shuffle_xor, get_sub_group_local_id, sub_group_barrier, na sub_group_ballot.
  • Usaidizi ulioboreshwa kwa CPU kulingana na usanifu wa RISC-V. Uendeshaji wa PoCL ulijaribiwa kwenye ubao wa Starfive VisionFive 2 uliopakiwa na mazingira ya Ubuntu 23.10 yenye LLVM 17 na GCC 13.2.
  • Kiendelezi cha cl_ext_float_atomics kimetekelezwa kwa usaidizi wa FP32 na FP64.
  • Utekelezaji wa kiendelezi cha cl_khr_command_buffer umesasishwa hadi toleo la 0.9.4.
  • Majaribio ya nyuma ya AlmaIF kwa FPGAs yamependekezwa.
  • Imeondoa usaidizi usio kamili kwa uwakilishi wa kati wa vivuli vya SPIR 1.x/2.0. SPIR-V inatangazwa kuwa lugha ya kati inayopendekezwa.
  • Usaidizi ulioongezwa kwa Clang/LLVM 17.0. Usaidizi wa Clang/LLVM 10-13 umeacha kutumika.

Chanzo: opennet.ru

Kuongeza maoni