Ua paʻi ʻia ka puke CUDA-ʻOkika 0.2.0 — he mea hōʻuluʻulu NVIDIA Labs hoʻokolohua e hiki ai iā ʻoe ke kākau i ke code no nā kernels CUDA ma ʻAla maʻemaʻe a hōʻuluʻulu pololei iā lākou i loko PTXHoʻohana ka papahana i kāna backend ponoʻī no rustc a kākoʻo i ke kumu hoʻohālike SIMT a ua kūkulu ʻia me ka hoʻohana ʻana i ke kauoha cargo oxide, me ke code kikowaena a me ka hāmeʻa e hiki ke noho i loko o ka lāʻau kumu like. Ua hana ʻia ka hoʻokuʻu ʻana 5 Iune 2026 makahiki a ua kapa ʻia ʻo ia ka "hoʻokuʻu kaiāulu" mua: ma hope o ka wehe ʻana o ka lālā 0.1.0, ua ʻae ka papahana i 37 mau noi huki mai 23 mau mea komo.
ʻO ka hoʻololi nui ma CUDA-Oxide 0.2.0 ka hoʻololi ʻana i kahi executable ponoʻī. Hiki ke hoʻokomo pololei ʻia nā mea hana GPU i hana ʻia—PTX, NVVM-IR, LTOIR, a me cubin—i loko o ka binary kikowaena ma o ke ʻano oxide-artifacts hou. ʻO ke ʻano kēia, ʻaʻole pono hou kahi polokalamu Rust me nā cores CUDA e lawe a puni i nā faila .ptx kaʻawale, a ua hoʻouka pololei ʻia nā cores mai ka executable e holo ana.
Nā hoʻololi nui:
Ke hoʻokomo nei i nā ʻāpana GPU i loko o ka binary host. Hoʻopuka ka mīkini #[cuda_module] hou i kahi ʻaoʻao hoʻomaka kernel i kikokiko ʻia a hūnā i ka hoʻouka ʻana o ka module pae haʻahaʻa. No ka mea hoʻomohala, ʻoi aku ka kokoke o kēia i ka Rust API maʻamau: ua hoʻohālikelike ʻia nā ʻāpana a me nā buffers i nā buffers CUDA, a ʻoi aku ka ikaika o ka hoʻomaka ʻana.
Kākoʻo hoʻomanaʻo mau loa CUDA. Ua hoʻohui ʻia #[mau] a me ka Mau me ka hana ʻana o ka mea hoʻonohonoho kikowaena. Ma ka pae PTX, pili kēia i ka .const a me ka wahi helu wahi 4. He mea nui kēia no ka ʻikepili e pono ai ke komo i nā kernels ma ke ʻano he mau waiwai mau ma ka hāmeʻa.
Nā makemakika hāmeʻa hou aku. Ua hoʻohui ʻia ʻo f32::max, f32::min, a me atan a me atan2 no f32 a me f64, ma o libdevice. Hoʻonui kēia i ka hoʻonohonoho o nā kernels kamepiula honua maoli i hiki ke hōʻike ʻia me ka ʻole o ka hoʻohana ʻana iā C++/CUDA.
Hoʻoponopono i ka hōʻuluʻulu hewa malū. ʻO kekahi mau miscompiles leo ʻole e hopena i kahi hāʻule manawa kūkulu ma kahi o ka hoʻopuka ʻana i kahi PTX hewa (hōʻiliʻili ka wgmma nalowale, hoʻokaʻawale i nā mea luku, nā mea hana i ale ʻia).
Hoʻomaikaʻi ʻia ka manawa hana o ka mea hoʻokipa. Ua hoʻohui ʻia kahi ʻaelike palekana DeviceCopy no ka hoʻoili ʻikepili i ka hāmeʻa, me nā buffers host i hoʻopaʻa ʻia me nā hoʻoili i kauoha ʻia e ke kahawai, ka hoʻouna hewa asynchronous, a me ke komo haʻahaʻa i ka CUmodule maka no ka hoʻohui ʻana me ka CUDA Driver API. Ua hoʻoponopono ʻia hoʻi kahi mismatch allocator DeviceBuffer, a ua hoʻohui ʻia ka launa pū me CUDA 12.8/13 a me aarch64.
Hoʻohui ʻia me ka CUDA Tile. Hoʻohui ka hoʻokuʻu ʻana i kahi laʻana o ka launa pū ʻana o cuTile ↔ SIMT: hiki i kahi CUDA-Oxide Tile core a me SIMT PTX core ke holo ma kahi kahawai CUDA hoʻokahi me nā tensors hāmeʻa i kaʻana like ʻia. Hōʻike kēia i kahi o CUDA-Oxide i ka hoʻolālā Rust/CUDA ākea o NVIDIA: ʻaʻole pani ka papahana i ka Tile DSL, akā pani i ka hakahaka no ka papahana SIMT kikoʻī ma Rust.
Ka hui ʻana me Pliron/LLVM ma uka. Ua pani ʻia ka dialect-llvm kūloko me ka pliron-llvm kūwaho mai ke kaiāulu pliron-org, a ua kapa hou ʻia ka ʻāpana kūloko i llvm-export. Hoʻemi kēia i ka māhele o ka papahana o ke kahua a hoʻohālikelike pono iā ia me ka hoʻomohala ʻana ma luna.
Hoʻomaʻalahi i ka ʻākoakoa a me ke komo ʻana i kahi papahana. Hoʻohanohano ʻo Cargo Oxide i kēia manawa iā RUSTFLAGS, CUDA_HOME, ka mea hoʻohui kikowaena nvcc, hiki ke loaʻa iā llc mai ka Rust toolchain, ʻike koke i ka GPU i manaʻo ʻia, a hoʻonohonoho hou i ka cache backend kahiko ma hope o kahi hōʻano hou. Ua hoʻohui ʻia ʻo devcontainer a me Nix flake no kahi ʻano hoʻomohala hiki ke hana hou ʻia.
He mana alpha mua nō ʻo CUDA-Oxide: ua hoʻolaha ʻia ka papahana ma o git, ʻaʻole i paʻi ʻia ma crates.io a kākoʻo wale nō LinuxHoʻomaopopo pololei pū ka README e haki paha ka API, a ke manaʻo ʻia nei nā hewa a me nā hiʻohiʻona i hoʻopau ʻole ʻia.
Aia kekahi nuance me ka laikini: ua hoʻokaʻawale ʻia ka ʻāpana nui o ka wahi hana ma lalo o Laikini Apache 2.0, akā hoʻohana ʻo crate cuda-bindings Laikini Polokalamu NVIDIANo laila, ʻaʻole hiki ke wehewehe ʻia ʻo CUDA-Oxide he papahana Apache homogeneous loa; he hoʻomohala open-source ia e NVIDIA Labs a puni ka ʻōnaehana CUDA, me kahi laikini kaʻawale no nā hoʻopaʻa CUDA haʻahaʻa.
Source: linux.org.ru
