LLVM төсөл нь CPU, GPU, FPGA болон хурдасгуурт зориулсан хөрвүүлэгч HPVM 1.0-ийг нэвтрүүлсэн.

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

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

HPVM-ийн зорилтот хамааралгүй завсрын төлөөлөл (IR) нь LLVM 9.0 завсрын зааврын дүрслэл дээр суурилагдсан бөгөөд даалгавар, өгөгдөл, дамжуулах хоолойн түвшний параллелизмыг авахын тулд шаталсан өгөгдлийн урсгалын графикаар өргөтгөдөг. HPVM завсрын дүрслэл нь вектор заавар болон хуваалцсан санах ойг агуулдаг. Завсрын дүрслэлийг ашиглах гол зорилго нь нэг төрлийн бус системүүдийн кодыг үр дүнтэй үүсгэх, оновчтой болгох явдал юм.

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

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

HPVM ашиглах нь бүтээмжийг мэдэгдэхүйц нэмэгдүүлэх боломжтой гэдгийг тэмдэглэжээ. HPVM орчуулагчийн гүйцэтгэлийг GPU болон вектор тооцоолох төхөөрөмжүүдийн гараар бичсэн OpenCL кодтой харьцуулж болно.

Эхний урьдчилсан хувилбартай харьцуулахад HPVM 1.0 нь шугаман алгебрийн тензорын үйлдлүүдийн дэмжлэг, Pytorch болон Keras-ийн урд тал, конволюцийн операторын ойролцоололт, тодорхой тензорын үйлдлүүдийн оновчтой ойролцоо утгыг автоматаар сонгож, оновчтой гүйцэтгэлийг хангах тохиргоог сонгох ойролцоо тохируулгын хүрээг агуулдаг.

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

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