GCC-д эмхэтгэх үйл явцыг зэрэгцүүлэхэд дэмжлэг үзүүлэх төсөл

Судалгааны төслийн хүрээнд Зэрэгцээ GCC Эмхэтгэх үйл явцыг хэд хэдэн зэрэгцээ хэлхээнд хуваах боломжийг GCC-д нэмэх ажил эхэлсэн. Одоогийн байдлаар олон цөмт системүүд дээр бүтээх хурдыг сайжруулахын тулд make хэрэгсэл нь тусдаа хөрвүүлэгчийн процессуудыг ажиллуулдаг бөгөөд тус бүр нь тусдаа кодын файл үүсгэдэг. Шинэ төсөл нь хөрвүүлэгчийн түвшинд параллель байдлыг хангах туршилт хийж байгаа бөгөөд энэ нь олон цөмт системүүдийн гүйцэтгэлийг сайжруулах боломжтой юм.

Туршилтын хувьд бэлтгэсэн GCC-ийн тусдаа зэрэгцээ залгах салбар бөгөөд энэ нь хэлхээний тоог тохируулах “—param=num-threads=N” шинэ параметрийг санал болгодог. Эхний үе шатанд бид процедур хоорондын оновчлолыг функц тус бүрээр циклээр дууддаг, хялбар зэрэгцүүлж болох тусдаа хэлхээ болгон шилжүүлэх ажлыг хэрэгжүүлсэн. Функцуудын харилцан үйлчлэлийг үнэлдэг техник хангамжаас хамааралгүй оновчлолыг хариуцдаг GIMPLE үйлдлүүд нь тусдаа хэлхээнд байрладаг.

Дараагийн шатанд техник хангамжийн платформын шинж чанарыг харгалзан процедур хоорондын RTL оновчлолыг тусдаа хэлхээнд шилжүүлэхээр төлөвлөж байна. Үүний дараа бид дуудлагын онцлогоос үл хамааран функц доторх кодонд хэрэглэгдэж буй процедурын дотоод оновчлолыг (IPA) зэрэгцээ болгохоор төлөвлөж байна. Одоогийн байдлаар хязгаарлах холбоос бол хог цуглуулагч бөгөөд олон урсгалтай горимд ажиллаж байх үед хог цуглуулах ажиллагааг идэвхгүй болгодог глобал түгжээг нэмсэн (ирээдүйд хог цуглуулагчийг GCC-ийн олон урсгалтай гүйцэтгэлд тохируулна).

Гүйцэтгэлийн өөрчлөлтийг үнэлэхийн тулд 100 мянга гаруй мөр код, 1700 функц агуулсан gimple-match.c файлыг цуглуулсан тестийн багцыг бэлтгэсэн. 5 физик цөмтэй, 8250 виртуал (Hyperthreading) бүхий Intel Core i4-8U CPU-тэй систем дээр хийсэн туршилтууд нь Intra Procedural GIMPLE оновчлолын гүйцэтгэлийн хугацаа 7 урсгалтай үед 4 секундээс 2 секунд, 3 урсгалтай үед 4 секунд болж буурчээ. утаснууд, өөрөөр хэлбэл. Угсралтын шатны хурдыг тус тус 1.72 ба 2.52 дахин нэмэгдүүлсэн. Туршилтууд нь Hyperthreading-тэй виртуал цөм ашиглах нь гүйцэтгэлийг нэмэгдүүлэхэд хүргэдэггүй болохыг харуулсан.

GCC-д эмхэтгэх үйл явцыг зэрэгцүүлэхэд дэмжлэг үзүүлэх төсөл

Барилга угсралтын нийт хугацааг ойролцоогоор 10% -иар бууруулсан боловч урьдчилсан мэдээгээр RTL-ийн оновчлолыг зэрэгцүүлэх нь илүү бодит үр дүнд хүрэх боломжийг олгоно, учир нь энэ үе шат эмхэтгэлд илүү их цаг зарцуулдаг. Ойролцоогоор RTL зэрэгцүүлсний дараа угсралтын нийт хугацаа 1.61 дахин багасна. Үүний дараа IPA оновчлолыг зэрэгцүүлэн хийснээр барилгын хугацааг дахин 5-10% бууруулах боломжтой болно.

GCC-д эмхэтгэх үйл явцыг зэрэгцүүлэхэд дэмжлэг үзүүлэх төсөл

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

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