PoCL 1.6, OpenCL стандартының дербес енгізілуі

Іске қосу жобаның жаңа нұсқасы PoCL 1.6 (Portable Computing Language OpenCL), 1.6 нұсқасының негізгі сәттері Clang / LLVM 11.0 қолдайды, сонымен қатар CUDA өнімділігі мен функцияларын жақсарту, PowerPC-пен үйлесімділікті жақсарту және OpenCL отладкаларын жақсарту.

PoCL-ді білмейтіндер үшін оның не екенін білуіңіз керек портативті ашық көзді енгізу (лицензияланған MIT) OpenCL стандартының (Кейбір 1.2 мүмкіндіктері бар 2.0). Сондай-ақ OpenCL көпқұрылғы ашық бастапқы коды болып табылады (шынымен гетерогенді) оңай тасымалданатын, бұл жобаның негізгі мақсаты - OpenCL-ге сәйкес келетін құрылғылардың біртұтас орталықтандырылған платформасына біріктіру арқылы олардың өзара әрекеттесуін жақсарту.

Сонымен қатар, ұзақ мерзімді мақсаттардың бірі - жұмыс уақыты мен компиляция техникасын қолданатын құрылғылар типтеріндегі OpenCL бағдарламаларының өнімділігі портативтілігін жақсарту.

OpenCL ядросының компиляторы LLVM-ге негізделген және Clang OpenCL C интерфейсі ретінде қолданылады. Тиісті портативтілік пен өнімділікті қамтамасыз ету үшін OpenCL ядро ​​компиляторы VLIW, суперскалалар сияқты кодтың орындалуын параллельдеу үшін әр түрлі аппараттық ресурстарды қолдана алатын біріктірілген функцияларды жасай алады. , SIMD, SIMT, көп ядролы және көп бұрандалы. ICD (Installable Client Driver) драйверлеріне қолдау бар. CPU, ASIP (TCE / TTA), HSA архитектурасына негізделген GPU және NVIDIA GPU (CUDA) арқылы жұмыс істеуге мүмкіндік беретін артта қалушылық бар.

PoCL 1.6 негізгі жаңа мүмкіндіктері

PoCL 1.6-дің бұл жаңа нұсқасы компиляция кезінде қосылған құрылғы драйверлерімен осы іске асыруды құрастыру мүмкіндігін көрсетеді, сонымен қатар құрылғының қол жетімділігі іске қосылған кезде тексеріледі (бұрын PoCL салынған және жұмыс істейтін жүйелер олар болуы керек еді) сол контроллердің тірегі). Conda бумасының менеджерін PoCL екілік пакеттерін Linux-x86_64 және Linux-ppc64le жүйелеріне арналған CUDA қолдауымен тарату үшін қолдану мүмкіндігі жүзеге асырылды.

Тағы бір ерекшеленетін өзгеріс - бұл LLVM 11-ті қолдау, сонымен қатар процессор контроллерін пайдалану кезінде OpenCL кодын жөндеудің кеңейтілген мүмкіндіктері.

Сонымен қатар, CUDA backend өнімділігін оңтайландыру жүзеге асырылды, бұл жергілікті жадыны (FFT, GEMM) пайдалануға байланысты операцияларды едәуір жеделдетуге мүмкіндік берді.

SHOC критерийлерін қолданатын эталондар (қазір үнемі тексеріліп отырады), бұл оңтайландырудың нәтижесі айтарлықтай жоғарылағанын көрсетеді, әсіресе FFT және GEMM сияқты жергілікті жадыны қамтитын эталондар, бұрынғы сілтемелермен салыстырғанда. PoCL қазір Nvidia компаниясының меншікті OpenCL-мен бәсекеге қабілетті болып табылады. жүргізуші). Қалған проблемалық аймақтардың негізгі себептерін анықтау және жою үшін жарналарды қолдаймыз. Біз сондай-ақ OpenCL 1.2 / 3.0 стандарттарының ерекшеліктерін жақсартуға арналған салымдарды құптаймыз.

  • PoCL өнімділігі көптеген сынақтарда қазір NVIDIA меншікті OpenCL драйверіне жақын.
  • Компилятор опцияларын өнімділіктің нашарлауы есебінен неғұрлым қауіпсіз libpocl.so жасауға мүмкіндік беру үшін HARDENING_ENABLE компиляция параметрі қосылды.
  • PowerPC 8/9 жүйелеріне қайтарылған қолдау, ол үшін pthread және CUDA құрылғыларын пайдалану кезінде OpenCL енгізу деңгейі x86_64 жүйелеріндегі CUDA деңгейіне сәйкес келеді.
  • __ жергілікті блоктарды қолданатын CUDA ядроларына арналған ABI өзгертілді. Жаңартудан кейін пайдаланушылар пакет кэшін тазалауы керек.
  • STATIC_LLVM және llvm-config қолданудың орнына SINGLE_LLVM_LIB құрастыру опциясы қай кітапханалармен байланыстырылатынын анықтау үшін жойылды.

Ақырында, егер сіз осы жаңа нұсқа туралы көбірек білгіңіз келсе, егжей-тегжейін тексере аласыз бастапқы жарнамада. 

Бұл іске асыру туралы көбірек білгісі келетіндер үшін олар кеңес ала алады ресми сайты осы жерден құжаттаманы табуға және файлдарды жүктеуге болады.

Жоба коды MIT лицензиясы бойынша таратылады және жұмысқа X86_64, MIPS32, ARM v7, AMD HSA APU платформаларында және VLIW архитектурасымен әр түрлі мамандандырылған TTA процессорларында қолдау көрсетіледі.


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.