ะะพะผะฟะฐะฝะธั Nvidia เบเบฑเบเบเบตเบกเบกเบฒ ะฟะตัะฒัะน ะฒัะฟััะบ ะธะฝััััะผะตะฝัะฐัะธั CUDA-oxide, ะฟะพะทะฒะพะปัััะตะณะพ ัะพะทะดะฐะฒะฐัั ะฝะฐ ัะทัะบะต Rust ะฟะฐัะฐะปะปะตะปัะฝะพ ะธัะฟะพะปะฝัะตะผัะต ะฒ GPU ัะดัะฐ CUDA SIMT (Single Instruction, Multiple Threads). ะัะพะตะบั ะฟะพะทะฒะพะปัะตั ะบะพะผะฟะธะปะธัะพะฒะฐัั ะบะพะด ะฝะฐ ัะทัะบะต Rust, ะธัะฟะพะปัะทัััะธะน ััะฐัะฝัั ัะธััะตะผั ัะธะฟะพะฒ ะธ ะผะพะดะตะปั ะฒะปะฐะดะตะฝะธั Rust, ะฝะฐะฟััะผัั ะฒ ะธะฝััััะบัะธะธ ะดะปั ะฒัะฟะพะปะฝะตะฝะธั ะฒ ะฒะธัััะฐะปัะฝะพะน ะผะฐัะธะฝะต CUDA PTX (nvidia.com) (Parallel Thread Execution) ะฑะตะท ะฟัะธะผะตะฝะตะฝะธั ะฟัะพะผะตะถััะพัะฝัั ะฟัะตะดะผะตัะฝะพ-ะพัะธะตะฝัะธัะพะฒะฐะฝะฝัั ัะทัะบะพะฒ (DSL) ะธ ะพะฑะฒัะทะพะบ.
ะะพะด ะธะฝััััะผะตะฝัะฐัะธั ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทัะบะต Rust ะธ เปเบเบเบขเบฒเบเปเบเบ ะฟะพะด ะปะธัะตะฝะทะธะตะน Apache 2.0. ะะตัะฒัะน ะฒัะฟััะบ ะฟะพะทะธัะธะพะฝะธััะตััั ะบะฐะบ ะฝะฐัะฐะปัะฝะฐั ะฐะปััะฐ-ะฒะตััะธั.
ะะฝััััะผะตะฝัะฐัะธะน ะฒะบะปััะฐะตั ะฒ ัะตะฑั:
- ะัะบะตะฝะด ะณะตะฝะตัะฐัะธะธ ะบะพะดะฐ ะดะปั ะบะพะผะฟะธะปััะพัะฐ rustc, ะฟะพะทะฒะพะปัััะธะน ะบะพะผะฟะธะปะธัะพะฒะฐัั ััะฝะบัะธะธ ั ะฐััะธะฑััะพะผ ยซ#[kernel]ยป ะฒ ะฟะฐัะฐะปะปะตะปัะฝะพ ะธัะฟะพะปะฝัะตะผัะต ะฝะฐ GPU ัะดัะฐ ะฒ ะฟัะตะดััะฐะฒะปะตะฝะธะธ CUDA PTX. ะัะธ ะบะพะผะฟะธะปััะธะธ ะธัะฟะพะปัะทัะตััั ััะฐัะฝะฐั ะดะปั rustc ัะตะฟะพัะบะฐ ะฟัะตะพะฑัะฐะทะพะฒะฐะฝะธะน ะฝะฐ ะฑะฐะทะต ััะตะนะผะฒะพัะบะฐ Pliron: Rust โ MIR โ Pliron IR โ LLVM IR โ PTX.
- ะฃะฝะธัะธัะธัะพะฒะฐะฝะฝะฐั ัะธััะตะผะฐ ัะฑะพัะบะธ ะบะพะผะฟะพะฝะตะฝัะพะฒ, ะฒัะฟะพะปะฝัะตะผัั ะฝะฐ ั ะพัั-ัะธััะตะผะต ะธ ะฝะฐ GPU, ะบะพัะพัะฐั ัะฒะพะดะธััั ะบ ะฒัะฟะพะปะฝะตะฝะธั ะบะพะผะฐะฝะด ยซcargo oxide buildยป ะธ ยซcargo oxide runยป.
- ะะฐะฑะพั Rust-ะฐะฑัััะฐะบัะธะน, ะบะพัะพััะน ะผะพะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะฒ ัะดัะฐั ะฝะฐ ััะพัะพะฝะต GPU. ะะฐะฟัะธะผะตั, ะดะพัััะฟะฝั ััะฝะบัะธะธ ะดะปั ะธะฝะดะตะบัะฐัะธะธ, ะธัะฟะพะปัะทะพะฒะฐะฝะธั ัะฐะทะดะตะปัะตะผะพะน ะฟะฐะผััะธ ะธ ะฑะฐััะตัะพะฒ, ะฐัะพะผะฐัะฝัั ะพะฟะตัะฐัะธะน, ัะธะฝั ัะพะฝะธะทะฐัะธะธ ะณััะฟะฟ ะฟะพัะพะบะพะฒ, TMA (nvlabs.github.io) (Tensor Memory Accelerator). ะะพะทะผะพะถะตะฝ ะฒัะทะพะฒ ะพะฑะฒัะทะพะบ ะฝะฐะด ะฝะธะทะบะพััะพะฒะฝะตะฒัะผะธ ะธะฝััััะบัะธัะผะธ, ัะฟะตัะธัะธัะฝัะผะธ ะดะปั ะฐัั ะธัะตะบัััั Blackwell (ะฝะฐะฟัะธะผะตั, ัะฐััะธัะตะฝะฝัะต ะผะฐััะธัะฝัะต ะพะฟะตัะฐัะธะธ).
- Crate-ะฟะฐะบะตัั ั ะฒัะฟะพะปะฝัะตะผัะผะธ ะฝะฐ ััะพัะพะฝะต ั ะพััะฐ ะบะพะผะฟะพะฝะตะฝัะฐะผะธ CUDA runtime, ะฟะพะทะฒะพะปัััะธะผะธ ัะฟัะฐะฒะปััั ะฟะฐะผัััั, ะทะฐะฟััะบะฐัั ัะดัะฐ ะฝะฐ GPU ะธ ะฒะทะฐะธะผะพะดะตะนััะฒะพะฒะฐัั ั ะฒัะฟะพะปะฝัะตะผัะผะธ ะฝะฐ GPU ััะฝะบัะธัะผะธ ะฒ ะฐัะธะฝั ัะพะฝะฝะพะผ ัะตะถะธะผะต.
- ะะพะปะปะตะบัะธั ะฟัะธะผะตัะพะฒ ัะดะตั, ะดะตะผะพะฝัััะธััััะธั ัะฐะบะธะต ะฒะพะทะผะพะถะฝะพััะธ, ะบะฐะบ ัะฐะฑะพัะฐ ั ะฒะตะบัะพัะฐะผะธ, ัะผะฝะพะถะตะฝะธะต ะผะฐััะธั (GEMM), ะฐัะพะผะฐัะฝัะต ะพะฟะตัะฐัะธะธ, ะฐัะธะฝั ัะพะฝะฝะพะต ะฒัะฟะพะปะฝะตะฝะธะต, ะธะฝัะตะณัะฐัะธั ั ะฑะธะฑะปะธะพัะตะบะพะน MathDx, ะฟัะธะผะตะฝะตะฝะธะต ะดะถะตะฝะตัะธะบะพะฒ ะธ ะทะฐะผัะบะฐะฝะธะน, ะฒะทะฐะธะผะพะดะตะนััะฒะธั ั CUDA-ัะดัะฐะผะธ ะฝะฐ C++/CCCL.
ะฏะดัะฐ ะดะปั GPU ัะพะทะดะฐัััั ะฝะฐ ะพะฑััะฝะพะผ Rust (ะฝะต ะดะธะฐะปะตะบั), ะฝะพ ะฒัะฟะพะปะฝััััั ะฒ ะพะบััะถะตะฝะธะธ no_std ะธ ะผะพะณัั ะธัะฟะพะปัะทะพะฒะฐัั ัะพะปัะบะพ ััะฝะบัะธะธ ะธะท ะฑะธะฑะปะธะพัะตะบะธ libcore ะธ ัะฐะฝะตะต ะพัะผะตัะตะฝะฝัะต ัะฟะตัะธะฐะปะธะทะธัะพะฒะฐะฝะฝัะต Rust-ะฐะฑัััะฐะบัะธะธ, ะฑะตะท ะดะพัััะฟะฐ ะบ ััะฐะฝะดะฐััะฝะพะน ะฑะธะฑะปะธะพัะตะบะต Rust (libstd). ะะพะดะดะตัะถะธะฒะฐัััั ะฟัะธะผะธัะธะฒะฝัะต ัะธะฟั (u8..u64, f32, f64, bool), ััััะบัััั, ะฟะตัะตัะธัะปะตะฝะธั, ะบะพััะตะถะธ, ะผะฐััะธะฒั ([T; N]) ะธ ัะปะฐะนัั (&[T]), ะพะฟะตัะฐัะพัั match / if / if let, ัะธะบะปั for ะธ while, ะธัะตัะฐัะพัั (.iter(), .enumerate()), ะทะฐะผัะบะฐะฝะธั ะธ ะดะถะตะฝะตัะธะบะธ. ะะต ะฟะพะดะดะตัะถะธะฒะฐัััั ัะธะฟั String, Vec ะธ Box, ะผะฐะบัะพัั format!, panic! ะธ println!, Trait-ะพะฑัะตะบัั ะธ ัะตะฐะปะธะทัะตะผัะต ัะตัะตะท ะพะฑัะฐัะตะฝะธะต ะบ ะพะฟะตัะฐัะธะพะฝะฝะพะน ัะธััะตะผะต ััะฝะบัะธะธ ััะฐะฝะดะฐััะฝะพะน ะฑะธะฑะปะธะพัะตะบะธ (ัะฐะฑะพัะฐ ั ัะฐะนะปะฐะผะธ, ะฒะฒะพะด/ะฒัะฒะพะด, ัะตัะตะฒัะต ะพะฟะตัะฐัะธะธ).
เบกเบต ััะธ ััะพะฒะฝั ะพะฑะตัะฟะตัะตะฝะธั ะฑะตะทะพะฟะฐัะฝะพััะธ CUDA-ัะดะตั ะฝะฐ Rust: ะทะฐัะธัะฐ ัะตัะตะท ัะธััะตะผั ัะธะฟะพะฒ (safe), ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะฑะปะพะบะพะฒ unsafe ะธ ะพะฑัะฐัะตะฝะธะต ะบ ะฝะธะทะบะพััะพะฒะฝะตะฒัะผ ะฐะฟะฟะฐัะฐัะฝัะผ ะธะฝััััะบัะธัะผ. ะัะพะธะทะฒะพะดะธัะตะปัะฝะพััั ัะพะทะดะฐะฝะฝะพะน ะฝะฐ CUDA-oxide ัะตะฐะปะธะทะฐัะธะธ ะผะฐััะธัะฝะพะณะพ ัะผะฝะพะถะตะฝะธั (GEMM SoL) ะฝะฐ GPU B200 ะดะพััะธะณะฐะตั 868 ััะธะปะปะธะพะฝะพะฒ ะพะฟะตัะฐัะธะน ะฒ ัะตะบัะฝะดั, ััะพ ัะพััะฐะฒะปัะตั 58% ะพั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััะธ ะพะฟัะธะผะธะทะธัะพะฒะฐะฝะฝะพะน ะฑะธะฑะปะธะพัะตะบะธ cuBLAS.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: linux.org.ru
