NVIDIA የCUDA Rust ኪትቦክስ መዘጋጀቱን አስታውቋል፣ ይህም የRust ቋንቋ በጂፒዩ ላይ የሚሰሩ ከርነሎችን እንዲያዳብር ያስችለዋል። ኪትቦው በማጠናቀቂያ ጊዜ የማህደረ ትውስታ ደህንነትን ያረጋግጣል እና የሩጫ ሁኔታዎችን ይከላከላል። በሚቀጥለው ዓመት፣ CUDA Rust ለምርት ፕሮጀክቶች ተስማሚ በሆነ ደረጃ እንዲዘጋጅ ታቅዷል፣ ይህም ከCUDA C++ እና CUDA Python ኪትቦክስ ጋር ተመሳሳይ ነው።
የCUDA Rust toolchain ትይዩ ከርነሎችን ለማዘጋጀት ሁለት ሞዴሎችን ይደግፋል፡ SIMT (ነጠላ መመሪያ፣ ብዙ ክሮች) እና ንጣፍ። የሲኤምቲ ሞዴል የአንድ ክር ዝቅተኛ ደረጃ ፍቺ፣ በሺዎች የሚቆጠሩ እንደዚህ ያሉ ክሮችን ማስጀመር እና ማስተዳደር ያስችላል። የታይል ሞዴል ከፍተኛ ደረጃ የአብስትራክሽን ደረጃን ይሰጣል፣ የግለሰብ ክሮችን በግልጽ ከማስተዳደር ይልቅ፣ በውሂብ ብሎኮች (ሰቆች) ላይ የሚሰሩ ስልተ ቀመሮች ይገለፃሉ፣ እና የታይል IR ኮምፓሌር ሁሉንም የክር ማኔጅመንት፣ የመዳረሻ ማመሳሰል፣ የማህደረ ትውስታ አስተዳደር እና በቴነር ኮሮች ላይ የውሂብ ስርጭትን ያስተናግዳል።
የሲኤምቲ ሞዴልን በመጠቀም በሩስት ቋንቋ ልማት፣ የኩዳ-ኦክሳይድ ኮምፓይለር እየተሰራ ሲሆን ይህም በመደበኛ የአይነት ስርዓት እና በሩስት ባለቤትነት ሞዴል በመጠቀም በሩስት ቋንቋ ኮድን በቀጥታ ለአፈፃፀም መመሪያዎች እንዲያጠናቅቅ ያስችለዋል። ምናባዊ ማሽን CUDA PTX (ትይዩ የክር አፈፃፀም)። የጂፒዩ ከርነሎች በመደበኛ Rust የተጻፉ ናቸው፣ ነገር ግን በno_std አካባቢ ውስጥ ይሰራሉ እና መደበኛውን Rust ቤተ-መጽሐፍት (libstd) ሳይደርሱ ከ libcore ቤተ-መጽሐፍት እና ከልዩ የ Rust Abstractions ተግባራት ብቻ መጠቀም ይችላሉ።
በሩስት የተጻፉ የCUDA ከርነሎች የአይነት ጥበቃ (ደህንነቱ የተጠበቀ)፣ ደህንነታቸው ያልተጠበቁ ብሎኮችን መጠቀም እና ዝቅተኛ ደረጃ የሃርድዌር መመሪያዎችን ማግኘትን ይፈቅዳሉ። ደህንነትን ለማረጋገጥ፣ የDisjointSlice አይነት ቀርቧል፣ እያንዳንዱ ክር የራሱ ውሂብ ብቻ ብቻ መዳረሻ እንዲኖረው ያረጋግጣል። የcuda-oxide ኮድ በአፓቼ 2.0 ፈቃድ ስር ፈቃድ ተሰጥቶታል።
የጅል ሞዴልን ተግባራዊ ለማድረግ የ cutile-rs ቤተ-መጽሐፍት ቀርቧል። የ Rust ፈሊጣዊ ቋንቋን በቀጥታ ወደ CUDA ከርነሎች የሚያጠናቅር ኮድ ለመፍጠር ያስችላል። Cutile-rs የ Rust ጥብቅ የባለቤትነት እና የብድር ደንቦችን በጂፒዩ ላይ ለሚሰራ ኮድ ይተገብራል። ከርነሉ በውሂብ ብሎክ ላይ የሚሰራ ባለ አንድ ክር ፕሮግራም ሆኖ ይተገበራል፣ እና ኮምፒውተሩ ስሌቱን በራስ-ሰር ወደ ክሮች ይከፍላል እና ማመሳሰልን ያረጋግጣል። ክሮቹ ወደ የማይለዋወጡ ታንሰሮች የጋራ መዳረሻ ይሰጣቸዋል፣ እና የሚለዋወጡ ቴንሰሮች ደህንነቱ የተጠበቀ መዳረሻን ለማረጋገጥ ወደ ተለያይተው ብሎኮች ይከፈላሉ። የ cutile-rs ኮድ በአፓቼ 2.0 ፈቃድ ስር ይሰራጫል።
ምንጭ: opennet.ru
