HPVM 2.0, CPU, GPU, FPGA மற்றும் ஹார்டுவேர் முடுக்கிகளுக்கான கம்பைலர் வெளியிடப்பட்டது

LLVM திட்டமானது HPVM 2.0 (Heterogeneous Parallel Virtual Machine) தொகுப்பியின் வெளியீட்டை அறிமுகப்படுத்தியது, இது பன்முக அமைப்புகளுக்கான நிரலாக்கத்தை எளிமையாக்குவதையும் CPUகள், GPUகள், FPGAகள் மற்றும் டொமைன்-குறிப்பிட்ட வன்பொருள் accelerators. திட்டக் குறியீடு Apache 2.0 உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

பன்முகத்தன்மை கொண்ட இணை அமைப்புகளுக்கான நிரலாக்கமானது, இணையான தன்மையை அடைவதற்கு வெவ்வேறு மாதிரிகள் (CPU கோர்கள், திசையன் வழிமுறைகள், GPU கள் போன்றவை), வெவ்வேறு வழிமுறைகள் மற்றும் வெவ்வேறு நினைவக படிநிலைகளைப் பயன்படுத்தும் கூறுகளின் ஒரு அமைப்பில் இருப்பதால் சிக்கலானது. ஒவ்வொரு அமைப்பும் இந்த கூறுகளின் சொந்த கலவையைப் பயன்படுத்துகிறது. HPVM திட்டத்தின் முக்கிய யோசனையானது GPUகள், வெக்டர் வழிமுறைகள், மல்டி-கோர் செயலிகள், FPGAகள் மற்றும் பல்வேறு சிறப்புகள் உட்பட, இணையான கணினியை ஆதரிக்கும் பல்வேறு வகையான வன்பொருள்களுக்குப் பயன்படுத்தக்கூடிய இணையான நிரல்களின் ஒருங்கிணைக்கப்பட்ட பிரதிநிதித்துவத்தை தொகுப்பதில் பயன்படுத்துவதாகும். முடுக்கி சில்லுகள்.

மற்ற அமைப்புகளைப் போலல்லாமல், HPVM ஆனது பன்முகக் கணினியை ஒழுங்கமைப்பதற்கான மூன்று சாத்தியக்கூறுகளை ஒருங்கிணைக்க முயற்சித்தது - ஒரு இடைநிலை பிரதிநிதித்துவம் (IR), ஒரு மெய்நிகர் அறிவுறுத்தல் தொகுப்பு கட்டமைப்பு (V-ISA), மற்றும் நிரலாக்க மொழி மற்றும் உபகரணங்களிலிருந்து சுயாதீனமாக இயங்கும் நேர திட்டமிடல்:

  • இடைநிலை பிரதிநிதித்துவம் HPVM ஆனது LLVM வழிமுறைகளின் இடைநிலை பிரதிநிதித்துவத்தை ஒரு படிநிலை தரவு ஓட்ட வரைபடத்தைப் பயன்படுத்தி பணிகள், தரவு மற்றும் கணக்கீட்டு குழாய்களின் மட்டத்தில் இணையான தன்மையைப் பிடிக்கிறது. HPVM இடைநிலை பிரதிநிதித்துவம் திசையன் வழிமுறைகள் மற்றும் பகிரப்பட்ட நினைவகத்தையும் உள்ளடக்கியது. இடைநிலை பிரதிநிதித்துவத்தைப் பயன்படுத்துவதன் முக்கிய நோக்கம் திறமையான குறியீடு உருவாக்கம் மற்றும் பன்முக அமைப்புகளுக்கான தேர்வுமுறை ஆகும்.
  • விர்ச்சுவல் இன்ஸ்ட்ரக்ஷன் செட் ஆர்கிடெக்சர் (வி-ஐஎஸ்ஏ) குறைந்த-நிலை வன்பொருளை சுருக்கி, தரவு ஓட்ட வரைபடத்தின் அடிப்படையான கன்குரன்சி மாடலைப் பயன்படுத்தி பல்வேறு வகையான இணை மற்றும் நினைவக கட்டமைப்புகளை ஒருங்கிணைக்கிறது. V-ISA ஆனது இணையான கம்ப்யூட்டிங்கிற்கான பல்வேறு வகையான வன்பொருள்களுக்கு இடையே பெயர்வுத்திறனை அடைய அனுமதிக்கிறது மற்றும் பன்முக அமைப்புகளின் வெவ்வேறு கூறுகளைப் பயன்படுத்தும் போது செயல்திறனை இழக்காமல் இருப்பதை சாத்தியமாக்குகிறது. CPUகள், GPUகள், FPGAகள் மற்றும் பல்வேறு முடுக்கிகளில் இயங்கக்கூடிய பொதுவான நிரல் இயங்கக்கூடிய குறியீட்டை வழங்க மெய்நிகர் ISA பயன்படுத்தப்படலாம்.
  • நெகிழ்வான கம்ப்யூட்டிங் செயல்முறை திட்டமிடல் கொள்கைகள் இயக்க நேரத்தில் பயன்படுத்தப்படுகின்றன மற்றும் நிரல் (வரைபட அமைப்பு) பற்றிய தகவல்களின் அடிப்படையில் செயல்படுத்தப்படுகின்றன மற்றும் கணினியில் கிடைக்கக்கூடிய இலக்கு கணினி சாதனங்களில் செயல்படுத்துவதற்கு தனிப்பட்ட நிரல் முனைகளை தொகுத்தல்.

திட்டத்தால் உருவாக்கப்பட்ட குறியீடு ஜெனரேட்டர்கள், NVIDIA GPUகள் (cuDNN மற்றும் OpenCL), Intel AVX வெக்டர் வழிமுறைகள், FPGAகள் மற்றும் மல்டி-கோர் x86 CPUகளைப் பயன்படுத்தி செயல்படுத்துவதற்கு மெய்நிகர் ISA ஐப் பயன்படுத்தி வரையறுக்கப்பட்ட பயன்பாட்டு முனைகளை மொழிபெயர்க்கும் திறன் கொண்டவை. HPVM மொழிபெயர்ப்பாளர்களின் முடிவுகளின் செயல்திறன் GPUகள் மற்றும் வெக்டர் கம்ப்யூட்டிங் சாதனங்களுக்கான கைமுறையாக எழுதப்பட்ட OpenCL குறியீட்டுடன் ஒப்பிடத்தக்கது என்பது குறிப்பிடத்தக்கது.

HPVM 2.0 இன் முக்கிய கண்டுபிடிப்புகள்:

  • ஹெட்டோரோ-சி++ மொழி முன்னோடி முன்மொழியப்பட்டது, இது HPVM இல் தொகுக்க C/C++ பயன்பாட்டுக் குறியீட்டின் இணையாக்கத்தை எளிதாக்குகிறது. ஹெட்டோரோ-சி++ தரவு-நிலை இணைநிலை மற்றும் HPVM நூல் வரைபடங்களுக்கு மேப் செய்யப்பட்ட படிநிலை பணிகளுக்கான நீட்டிப்புகளை வரையறுக்கிறது.
  • Intel FPGA இல் குறியீடு செயல்படுத்தலை ஆதரிக்க FPGA பின்தளம் சேர்க்கப்பட்டுள்ளது. செயல்படுத்தலை ஒழுங்கமைக்க, OpenCLக்கான Intel FPGA SDK பயன்படுத்தப்படுகிறது.
  • DSE (டிசைன் ஸ்பேஸ் எக்ஸ்ப்ளோரேஷன்) கட்டமைப்பு சேர்க்கப்பட்டுள்ளது, இதில் கம்பைலர் மேம்படுத்தல்கள் மற்றும் கொடுக்கப்பட்ட வன்பொருள் தளத்திற்கான பயன்பாடுகளை தானாக டியூன் செய்வதற்கான இடையூறு கண்டறிதல் வழிமுறைகள் உள்ளன. கட்டமைப்பானது Intel இலிருந்து FPGAக்கான ஆயத்த செயல்திறன் மாதிரியைக் கொண்டுள்ளது மற்றும் HPVM ஆல் ஆதரிக்கப்படும் எந்தவொரு சாதனத்திற்கும் உகப்பாக்குவதற்கு உங்கள் சொந்த செயலிகளை இணைக்க உங்களை அனுமதிக்கிறது. மேம்படுத்தல்களை HPVM டேட்டாஃப்ளோ வரைபட நிலை மற்றும் LLVM நிலை ஆகிய இரண்டிலும் பயன்படுத்தலாம்.
  • LLVM கூறுகள் பதிப்பு 13.0 க்கு புதுப்பிக்கப்பட்டது.
  • கோட்பேஸ், லைப்ரரிகள் மற்றும் யூட்டிலிட்டிகள் மூலம் எளிதாக செல்லவும் குறியீடு மறுசீரமைக்கப்பட்டுள்ளது.
  • சோதனைக்கான உள்கட்டமைப்பு மேம்படுத்தப்பட்டுள்ளது, பல்வேறு HPVM கூறுகளுக்கு புதிய சோதனைகள் சேர்க்கப்பட்டுள்ளன.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்