CPU, GPU, FPGA болон техник хангамжийн хурдасгуурт зориулсан хөрвүүлэгч HPVM 2.0 хэвлэгдэн гарлаа.

LLVM төсөл нь нэг төрлийн бус системүүдийн програмчлалыг хялбарчлах, CPU, GPU, FPGA болон домэйнд зориулсан техник хангамжийн хурдасгуурт зориулсан код үүсгэх хэрэгслээр хангах зорилготой эмхэтгэгч HPVM 2.0 (Гэгдүүгүй зэрэгцээ виртуал машин) хувилбарыг зарлалаа. Төслийн кодыг Apache 2.0 лицензийн дагуу түгээдэг.

Нэг төрлийн параллель системд зориулсан програмчлал нь параллелизмд хүрэхийн тулд өөр өөр загвар (CPU цөм, вектор заавар, GPU гэх мэт), өөр өөр зааврын багц, өөр өөр санах ойн шатлалыг ашигладаг нэг системд бүрэлдэхүүн хэсгүүд байгаа тул төвөгтэй байдаг. Систем бүр эдгээр бүрэлдэхүүн хэсгүүдийн өөрийн хослолыг ашигладаг. HPVM төслийн гол санаа нь GPU, вектор заавар, олон цөмт процессор, FPGA гэх мэт зэрэгцээ тооцооллыг дэмждэг төрөл бүрийн техник хангамжид ашиглаж болох зэрэгцээ гүйцэтгэсэн програмуудын нэгдсэн дүрслэлийг эмхэтгэхэд ашиглах явдал юм. төрөл бүрийн тусгай хурдасгуур чипүүд.

Бусад системүүдээс ялгаатай нь HPVM нь програмчлалын хэл ба техник хангамжаас хамааралгүй завсрын дүрслэл (IR), виртуал зааврын багц архитектур (V-ISA) болон ажиллах цагийн хуваарь гэсэн гетероген тооцоолол зохион байгуулах гурван чадварыг хослуулахыг оролдсон.

  • HPVM завсрын дүрслэл нь даалгавар, өгөгдөл, дамжуулах хоолойн түвшинд параллелизмыг авахын тулд шаталсан өгөгдлийн урсгалын графикийг ашиглан зааврын LLVM завсрын дүрслэлийг өргөжүүлдэг. HPVM завсрын дүрслэл нь вектор заавар болон хуваалцсан санах ойг агуулдаг. Завсрын дүрслэлийг ашиглах гол зорилго нь нэг төрлийн бус системүүдийн кодыг үр дүнтэй үүсгэх, оновчтой болгох явдал юм.
  • Virtual Instruction Set Architecture (V-ISA) нь доод түвшний техник хангамжийн шинж чанаруудыг хийсвэрлэн авч, зөвхөн параллелизмын үндсэн загвар болох өгөгдлийн урсгалын графикийг ашиглан параллелизм болон санах ойн архитектурын янз бүрийн хэлбэрийг нэгтгэдэг. V-ISA нь зэрэгцээ тооцоолох янз бүрийн төрлийн төхөөрөмжүүдийн хооронд зөөвөрлөх боломжийг олгодог бөгөөд гетероген системийн янз бүрийн элементүүдийг ашиглах үед гүйцэтгэлийг алдахгүй байх боломжийг олгодог. Виртуал ISA нь CPU, GPU, FPGA болон төрөл бүрийн хурдасгуур ашиглан ажиллах боломжтой бүх нийтийн гүйцэтгэгдэх програмын кодыг хүргэхэд ашиглаж болно.
  • Тооцооллын процессын уян хатан хуваарийн бодлогыг ажиллах үед хэрэгждэг бөгөөд програмын тухай мэдээлэл (график бүтэц) болон системд байгаа аливаа зорилтот тооцоолох төхөөрөмж дээр гүйцэтгэх бие даасан програмын зангилааны эмхэтгэлээр хоёуланг нь хэрэгжүүлдэг.

Төслийн боловсруулсан код үүсгэгчид нь NVIDIA GPU (cuDNN болон OpenCL), Intel AVX вектор заавар, FPGA болон олон цөмт x86 CPU ашиглан гүйцэтгэхийн тулд виртуал ISA ашиглан тодорхойлсон програмын зангилаануудыг орчуулах чадвартай. HPVM орчуулагчдын гүйцэтгэл нь GPU болон вектор тооцоолох төхөөрөмжүүдийн гараар бичсэн OpenCL кодтой харьцуулах боломжтой гэдгийг тэмдэглэжээ.

HPVM 2.0-ийн гол шинэчлэлүүд:

  • HPVM-д эмхэтгэхийн тулд C/C++ хэл дээрх програмын кодыг параллель болгох ажлыг хялбаршуулсан Hetero-C++ хэлний урд хэсгийг санал болгосон. Hetero-C++ нь өгөгдлийн түвшний параллелизм болон HPVM хэлхээний графикт буулгах шаталсан ажлуудын өргөтгөлүүдийг тодорхойлдог.
  • Intel FPGA дээр код гүйцэтгэхэд дэмжлэг үзүүлэх зорилгоор FPGA backend нэмэгдсэн. Гүйцэтгэлийг зохион байгуулахын тулд OpenCL-д зориулсан Intel FPGA SDK ашигладаг.
  • DSE (Design Space Exploration) хүрээг нэмсэн бөгөөд үүнд хөрвүүлэгчийн оновчлол, өгөгдсөн техник хангамжийн платформд зориулсан програмуудыг автоматаар тааруулахад саад тотгорыг тодорхойлох механизмууд багтсан болно. Энэхүү хүрээ нь Intel-ийн FPGA-д зориулсан гүйцэтгэлийн бэлэн загварыг агуулсан бөгөөд HPVM-ээр дэмжигдсэн аливаа төхөөрөмжийг оновчтой болгохын тулд өөрийн процессоруудыг холбох боломжтой болгодог. Оновчлолыг HPVM болон LLVM өгөгдлийн урсгалын графикийн түвшинд ашиглаж болно.
  • LLVM бүрэлдэхүүн хэсгүүдийг 13.0 хувилбар болгон шинэчилсэн.
  • Кодын бааз, номын сан, хэрэгслүүдийг удирдахад хялбар болгох үүднээс кодыг дахин зохион байгуулсан.
  • Туршилтын дэд бүтцийг сайжруулж, HPVM-ийн янз бүрийн бүрэлдэхүүн хэсгүүдийн шинэ туршилтуудыг нэмсэн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх