የLLVM ፕሮጀክት ለተለያዩ ስርዓቶች ፕሮግራሚንግ ለማቃለል እና ለሲፒዩዎች፣ ለጂፒዩዎች፣ ለFPGAዎች እና ለጎራ-ተኮር የሃርድዌር ማጣደፊያዎች ኮድ ለማመንጨት መሳሪያዎችን የሚያቀርብ HPVM 2.0 (Heterogeneous Parallel Virtual Machine) ኮምፓይለር አውጥቷል። የፕሮጀክቱ ኮድ በአፓቼ 2.0 ፈቃድ ስር ይሰራጫል።
የተለያዩ ትይዩ ስርዓቶችን ማዘጋጀት ውስብስብ የሚሆነው የተለያዩ ትይዩ ሞዴሎችን (የሲፒዩ ኮሮች፣ የቬክተር መመሪያዎች፣ ጂፒዩዎች፣ ወዘተ)፣ የተለያዩ የመመሪያ ስብስቦችን እና የተለያዩ የማህደረ ትውስታ ተዋረዶችን የሚጠቀም በአንድ ስርዓት ውስጥ ባሉ ክፍሎች መኖሩ ነው። እያንዳንዱ ስርዓት የራሱ የሆነ የእንደዚህ አይነት ክፍሎች ጥምረት ይጠቀማል። የHPM ፕሮጀክት ዋና ሀሳብ በማጠናቀር ጊዜ የትይዩ ፕሮግራሞችን የተዋሃደ ውክልና መጠቀም ሲሆን ይህም በትይዩ ኮምፒውቲንግ የሚደግፉ የተለያዩ የሃርድዌር አይነቶችን ለምሳሌ ጂፒዩዎችን፣ የቬክተር መመሪያዎችን፣ ባለብዙ ኮር ፕሮሰሰሮችን፣ FPGAዎችን እና የተለያዩ ልዩ የፍጥነት ቺፖችን ጨምሮ ሊተገበር ይችላል።
ከሌሎች ስርዓቶች በተለየ፣ HPVM የተለያዩ ኮምፒውቲንግዎችን ለማደራጀት ሶስት ችሎታዎችን ለማጣመር ሞክሯል፡ የፕሮግራሚንግ ቋንቋ እና የሃርድዌር-ገለልተኛ መካከለኛ ውክልና (IR)፣ የቨርቹዋል መመሪያ ስብስብ አርክቴክቸር (V-ISA) እና የሩጫ ጊዜ መርሃ ግብር፡
- የHPM IR የLLVM IRን የተዋረድ የውሂብ ፍሰት ግራፍ በመተግበር ያራዝመዋል፣ ይህም በተግባር፣ በውሂብ እና በቧንቧ መስመር ደረጃዎች ላይ ትይዩነትን ያስችላል። የHPM IR የቬክተር መመሪያዎችን እና የተጋራ ማህደረ ትውስታን ያካትታል። የIR ዋና ግብ ለተለያዩ ስርዓቶች ውጤታማ የኮድ ማመንጨት እና ማመቻቸት ነው።
- የቨርቹዋል ኢንስተግራም ስብስብ አርክቴክቸር (V-ISA) ዝቅተኛ ደረጃ ያላቸውን የሃርድዌር ዝርዝሮችን ይቀርፃል እና የተለያዩ የትይዩነት እና የማህደረ ትውስታ አርክቴክቸሮችን ከስር ያለውን ትይዩነት ሞዴል - የውሂብ ፍሰት ግራፍ - በመጠቀም ያጣምራል። V-ISA በተለያዩ የትይዩ የኮምፒውተር ሃርድዌር ዓይነቶች ላይ ተንቀሳቃሽነትን ያስችላል እና የተለያዩ የተለያዩ ስርዓቶችን ሲጠቀሙ ወጥ የሆነ አፈጻጸም ያረጋግጣል። V-ISA በሲፒዩዎች፣ ጂፒዩዎች፣ FPGAዎች እና በተለያዩ አፋጣኝ መሳሪያዎች ላይ ሊሰራ የሚችል ሁለንተናዊ አስፈፃሚ ኮድ ለማቅረብም ሊያገለግል ይችላል።
- ለኮምፒዩተር ሂደት ተለዋዋጭ የጊዜ ሰሌዳ ፖሊሲዎች በስራ ሰዓት ላይ ይተገበራሉ እና በፕሮግራም መረጃ (የግራፍ መዋቅር) እና በስርዓቱ ውስጥ በሚገኙ በማንኛውም የታለመ የኮምፒውተር መሳሪያዎች ላይ ለማስፈጸም የግለሰብ ፕሮግራም ኖዶችን በማጠናቀር ይተገበራሉ።
የፕሮጀክቱ የኮድ ማመንጫዎች በNVIDIA ጂፒዩዎች (cuDNN እና OpenCL)፣ Intel AVX vector instructions፣ FPGAs እና ባለብዙ ኮር x86 ሲፒዩዎች ላይ ለማስፈጸም ምናባዊ ISA በመጠቀም የተገለጹ የአፕሊኬሽን ኖዶችን መተርጎም ይችላሉ። የHPM ተርጓሚዎች አፈጻጸም ለጂፒዩዎች እና ለቬክተር ኮምፒውቲንግ መሳሪያዎች በእጅ ከተጻፈ የOpenCL ኮድ ጋር ተመሳሳይ እንደሆነ ተዘግቧል።
የ HPVM 2.0 ቁልፍ አዳዲስ ባህሪያት፡
- በHPM ላይ ለማጠናቀር የC/C++ አፕሊኬሽን ኮድ ትይዩአላይዜሽንን የሚያቃልል የHetero-C++ ቋንቋ የፊት ለፊት ክፍል ቀርቧል። Hetero-C++ ወደ HPVM የክር ግራፎች የሚቀየሩትን የውሂብ ደረጃ ትይዩአሊዝም እና ተዋረዳዊ ተግባራት ቅጥያዎችን ይገልፃል።
- በኢንቴል FPGAዎች ላይ የኮድ አፈፃፀምን የሚደግፍ የFPGA የኋላ ክፍል ተጨምሯል። ለኦፕንCL የኢንቴል FPGA SDK ለአፈፃፀም ጥቅም ላይ ይውላል።
- የDSE (የዲዛይን ቦታ ፍለጋ) ማዕቀፍ ተጨምሯል፣ ይህም ለአንድ የተወሰነ የሃርድዌር መድረክ አፕሊኬሽኖችን በራስ-ሰር ለማስተካከል የኮምፓየር ማሻሻያ እና የቦልት ማወቂያ ዘዴዎችን ያካትታል። ማዕቀፉ ለ Intel FPGAዎች የተዘጋጀ የአፈጻጸም ሞዴልን ያካትታል እና ብጁ ተቆጣጣሪዎች በ HPVM በሚደገፍ በማንኛውም መሳሪያ ላይ ለማመቻቸት እንዲሰኩ ያስችላቸዋል። ማሻሻያዎች በሁለቱም በ HPVM የውሂብ ፍሰት ግራፍ እና በ LLVM ደረጃዎች ሊተገበሩ ይችላሉ።
- የLLVM ክፍሎች ወደ ስሪት 13.0 ተዘምነዋል።
- ኮዱ የኮድ መሰረቱን፣ ቤተ-መጻሕፍትን እና መገልገያዎችን በቀላሉ ለማሰስ እንደገና ተደራጅቷል።
- የሙከራ መሠረተ ልማቱ ተሻሽሏል፣ እና ለተለያዩ የ HPVM ክፍሎች አዳዲስ ምርመራዎች ተጨምረዋል።
ምንጭ: opennet.ru
