Nvidia ta fitar da CUDA-oxide, wani na'urar tattara bayanai ta Rust-to-CUDA.

Kamfanin Nvidia aka buga fitowar kayan aikin farko CUDA-oxide, wanda ke ba ku damar ƙirƙirar ƙwayoyin GPU masu layi ɗaya a cikin harshen Rust CUDA SIMT (Umarni Guda Ɗaya, Zaren Da Yawa). Aikin yana ba ku damar tattara lambar Rust ta amfani da tsarin nau'in da aka saba da shi da kuma samfurin mallakar Tsatsa, kai tsaye a cikin umarnin aiwatarwa a cikin injin kama-da-wane na CUDA PTX (nvidia.com) (Aikin Zaren Daidaito) ba tare da amfani da harsunan da suka dace da yanki (DSLs) da kuma ɗaurewa ba.

An rubuta lambar kayan aikin a cikin Rust and rarraba ta a ƙarƙashin lasisin Apache 2.0. An sanya fitowar farko a matsayin sigar alpha ta farko.

Kayan aikin ya haɗa da:

  • Tsarin samar da lambar baya don mai haɗa rustc wanda ke ba ku damar tattara ayyuka tare da "#[ƙarin tushe]"zuwa cikin ƙwayoyin GPU masu layi ɗaya a cikin wakilcin CUDA PTX. Tarin yana amfani da sarkar canji ta tushen tsarin rustc. Pliron: Tsatsa → MIR → Pliron IR → LLVM IR → PTX.
  • Tsarin haɗin kai don haɗa abubuwan da ke gudana akan tsarin mai masaukin baki da kuma akan GPU, wanda ya ta'allaka ne akan aiwatar da umarnin "gina oxide na kaya" da "gudun oxide na kaya".
  • Saitin abubuwan da aka samo daga Rust wanda za a iya amfani da shi a cikin ƙwayoyin GPU. Misali, ayyuka suna samuwa don yin lissafi, amfani da ƙwaƙwalwar ajiya da shinge, ayyukan atomic, da kuma daidaita ƙungiyar zare. TMA (nvlabs.github.io) (Tensor Memory Accelerator). Yana yiwuwa a kira mannewa don umarnin ƙananan matakai waɗanda suka shafi tsarin Blackwell (misali, ayyukan matrix masu tsawo).
  • Fakitin ajiya tare da abubuwan da ke cikin lokacin aiki na CUDA waɗanda ke ba da damar sarrafa ƙwaƙwalwa, gudanar da kernels akan GPU, da kuma hulɗa da ayyukan da ke kan GPU ba tare da wani lokaci ba.
  • Tarin misalan ƙwayoyin halitta waɗanda ke nuna siffofi kamar sarrafa vector, ninka matrix (GEMM), ayyukan atomic, aiwatarwa asynchronous, da haɗin ɗakin karatu. MathDx, ta amfani da na'urorin halitta da rufewa, suna hulɗa da ƙwayoyin CUDA a cikin C++/CCCL.

Ana ƙirƙirar ƙwayoyin GPU a cikin tsatsa na yau da kullun (ba yare ba), amma ana aiwatar da su a cikin muhalli babu_std kuma za a iya amfani da ayyuka ne kawai daga ɗakin karatu libcore da kuma abubuwan da aka ambata na musamman na Rust, ba tare da samun damar shiga ɗakin karatu na yau da kullun na Rust ba (libstd). Nau'ikan da aka tallafa sun haɗa da nau'ikan farko (u8..u64, f32, f64, bool), tsarin, ƙididdiga, tuples, arrays ([T; N]) da yanka (&[T]), daidaitawa / idan / idan let operators, for and while madauki, iterators (.iter(), .enumerate()), rufewa, da janareta ba a tallafawa ba. Ba a tallafawa nau'ikan String, Vec, da Box, format!, panic!, da println! macros, Trait objects, da ayyukan laburare na yau da kullun da aka aiwatar ta hanyar kiran tsarin aiki (management file, I/O, da ayyukan cibiyar sadarwa).

Akwai Matakai uku na amincin CUDA a cikin Rust: kariyar tsarin nau'in (mai aminci), amfani da tubalan marasa aminci, da kuma samun damar zuwa ga umarnin kayan aiki masu ƙarancin matakai. Aikin aiwatar da ninka matrix bisa CUDA-oxide (GEMM SoL) akan GPU na B200 ya kai ayyukan tiriliyan 868 a cikin daƙiƙa ɗaya, wanda shine kashi 58% na aikin ɗakin karatu da aka inganta. kuBLAS.

source: linux.org.ru

Sayi amintaccen masauki don shafuka tare da kariyar DDoS, sabar VPS VDS 🔥 Sayi ingantaccen masaukin yanar gizo tare da kariyar DDoS, sabar VPS VDS | ProHoster