Nvidia แž”แžถแž“แž…แŸแž‰แž•แŸ’แžŸแžถแž™ CUDA-oxide แžŠแŸ‚แž›แž‡แžถแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž…แž„แž€แŸ’แžšแž„ Rust-to-CUDAแŸ”

แž€แŸ’แžšแžปแž˜แž แŸŠแžปแž“ Nvidia แž”แžถแž“แž•แŸ’แžŸแž–แŸ’แžœแž•แŸ’แžŸแžถแž™ แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžŠแŸ†แž”แžผแž„แž“แŸƒแžงแž”แž€แžšแžŽแŸ แžขแžปแž€แžŸแŸŠแžธแžŠ CUDAแžŠแŸ‚แž›แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž”แž„แŸ’แž€แžพแžแžแžบแžŽแŸ‚แž› GPU แžŸแŸ’แžšแž”แž‚แŸ’แž“แžถแž‡แžถแž—แžถแžŸแžถ Rust แžŸแŸŠแžธแž˜แž’แžธ CUDA (แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžแŸ‚แž˜แžฝแž™ แžแŸ’แžŸแŸ‚แž…แŸ’แžšแžพแž“)แŸ” แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แžขแŸ’แž“แž€แž…แž„แž€แŸ’แžšแž„แž€แžผแžŠ Rust แžŠแŸ„แž™แž”แŸ’แžšแžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ’แžšแž—แŸแž‘แžŸแŸ’แžแž„แŸ‹แžŠแžถแžš แž“แžทแž„ แž‚แŸ†แžšแžผแž“แŸƒแž—แžถแž–แž‡แžถแž˜แŸ’แž…แžถแžŸแŸ‹ แž…แŸ’แžšแŸ‚แŸ‡ แžŠแŸ„แž™แž•แŸ’แž‘แžถแž›แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž“แžทแž˜แŸ’แž˜แžทแž CUDA PTX (nvidia.com) (แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžแŸ’แžŸแŸ‚แžŸแŸ’แžšแžกแžถแž™แžŸแŸ’แžšแž”แž‚แŸ’แž“แžถ) แžŠแŸ„แž™แž˜แžทแž“แž”แŸ’แžšแžพแž—แžถแžŸแžถแž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แžŠแžผแž˜แŸแž“แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜ (DSLs) แž“แžทแž„แž€แžถแžšแž…แž„แŸ”

แž€แžผแžŠแžงแž”แž€แžšแžŽแŸแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถแž—แžถแžŸแžถ Rust แž“แžทแž„ แž…แŸ‚แž€แž…แžถแž™โ€‹แžŠแŸ„แž™ แž€แŸ’แžšแŸ„แž˜แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽ Apache 2.0แŸ” แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž›แžพแž€แžŠแŸ†แž”แžผแž„แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹แž‡แžถแž€แŸ†แžŽแŸ‚แžขแžถแž›แŸ‹แž แŸ’แžœแžถแžŠแŸ†แž”แžผแž„แŸ”

แžŸแŸ†แžŽแžปแŸ†แžงแž”แž€แžšแžŽแŸแžšแžฝแž˜แž˜แžถแž“แŸ–

  • แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แž•แŸ’แž“แŸ‚แž€โ€‹แžแžถแž„แž€แŸ’แžšแŸ„แž™โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž€แžถแžšโ€‹แž”แž„แŸ’แž€แžพแžโ€‹แž€แžผแžŠโ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž€แž˜แŸ’แž˜แžœแžทแž’แžธโ€‹แž…แž„แž€แŸ’แžšแž„ rustc แžŠแŸ‚แž›โ€‹แžขแž“แžปแž‰แŸ’แž‰แžถแžโ€‹แžฑแŸ’แž™โ€‹แžขแŸ’แž“แž€โ€‹แž…แž„แž€แŸ’แžšแž„โ€‹แž˜แžปแžแž„แžถแžšโ€‹แž‡แžถแž˜แžฝแž™ "#[แžแžบแžŽแŸ‚แž›]" แž‘แŸ…แž‡แžถแžแžบแžŽแŸ‚แž› GPU แžŸแŸ’แžšแž”แž‚แŸ’แž“แžถแž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแžแŸ†แžŽแžถแž„ CUDA PTXแŸ” แž€แžถแžšแž…แž„แž€แŸ’แžšแž„แž”แŸ’แžšแžพแžแŸ’แžŸแŸ‚แžŸแž„แŸ’แžœแžถแž€แŸ‹แž”แŸ†แž›แŸ‚แž„แžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพแž€แŸ’แžšแž”แžแŸแžŽแŸ’แžŒ rustc แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšแŸ” แž—แžธแž›แžšแŸ‰แžปแž“แŸ– แž…แŸ’แžšแŸ‚แŸ‡ โ†’ MIR โ†’ Pliron IR โ†’ LLVM IR โ†’ PTX แŸ”
  • แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แž„แŸ’แžšแžฝแž”แž”แž„แŸ’แžšแžฝแž˜แž˜แžฝแž™แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž•แŸ’แž‚แžปแŸ†แžŸแž˜แžถแžŸแž’แžถแžแžปแžŠแŸ‚แž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž›แžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž˜แŸ‰แžถแžŸแŸŠแžธแž“ แž“แžทแž„แž›แžพ GPU แžŠแŸ‚แž›แžŸแž„แŸ’แžแŸแž”แž‘แŸ…แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ "cargo oxide build" แž“แžทแž„ "cargo oxide run"แŸ”
  • แžŸแŸ†แžŽแžปแŸ†แž“แŸƒ Rust abstractions แžŠแŸ‚แž›แžขแžถแž…แž”แŸ’แžšแžพแž€แŸ’แž“แžปแž„แžแžบแžŽแŸ‚แž›แž•แŸ’แž“แŸ‚แž€ GPUแŸ” แžงแž‘แžถแž แžšแžŽแŸ แž˜แžปแžแž„แžถแžšแžขแžถแž…แžšแž€แž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž’แŸ’แžœแžพแž›แžทแž”แžทแž€แŸ’แžšแž˜ แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ† แž“แžทแž„แžšแž”แžถแŸ†แž„แžŠแŸ‚แž›แž”แžถแž“แž…แŸ‚แž€แžšแŸ†แž›แŸ‚แž€ แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžขแžถแžแžผแž˜แžทแž€ แž“แžทแž„แž€แžถแžšแž’แŸ’แžœแžพแžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แž€แŸ’แžšแžปแž˜แžแŸ’แžŸแŸ‚แžŸแŸ’แžšแžกแžถแž™แŸ” TMA (nvlabs.github.io) (แžงแž”แž€แžšแžŽแŸแž”แž„แŸ’แž€แžพแž“แž›แŸ’แž”แžฟแž“แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ† Tensor)แŸ” แžœแžถแžขแžถแž…แž’แŸ’แžœแžพแž‘แŸ…แž”แžถแž“แžŠแžพแž˜แŸ’แž”แžธแž แŸ…แž€แžถแžšแž…แž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แž€แž˜แŸ’แžšแžทแžแž‘แžถแž”แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹แž…แŸ†แž–แŸ„แŸ‡แžŸแŸ’แžแžถแž”แžแŸ’แž™แž€แž˜แŸ’แž˜ Blackwell (แžงแž‘แžถแž แžšแžŽแŸ แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž˜แŸ‰แžถแž‘แŸ’แžšแžธแžŸแžŠแŸ‚แž›แž”แžถแž“แž–แž„แŸ’แžšแžธแž€)แŸ”
  • แž€แž‰แŸ’แž…แž”แŸ‹ Crate แž‡แžถแž˜แžฝแž™แžŸแž˜แžถแžŸแž’แžถแžแžป CUDA runtime แžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพแž˜แŸ‰แžถแžŸแŸŠแžธแž“ แžŠแŸ‚แž›แžขแžถแž…แžฑแŸ’แž™แž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ† แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžแžบแžŽแŸ‚แž›แž“แŸ…แž›แžพ GPU แž“แžทแž„แž’แŸ’แžœแžพแžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™แž˜แžปแžแž„แžถแžšแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ GPU แžŠแŸ„แž™แž˜แžทแž“แžŸแž˜แž€แžถแž›แž€แž˜แŸ’แž˜แŸ”
  • แž€แžถแžšแž”แŸ’แžšแž˜แžผแž›แž•แŸ’แžŠแžปแŸ†แžงแž‘แžถแž แžšแžŽแŸแžแžบแžŽแŸ‚แž›แžŠแŸ‚แž›แž”แž„แŸ’แž แžถแž‰แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžŠแžผแž…แž‡แžถแž€แžถแžšแžšแŸ€แž”แž…แŸ†แžœแŸ‰แžทแž…แž‘แŸแžš แž€แžถแžšแž‚แžปแžŽแž˜แŸ‰แžถแž‘แŸ’แžšแžธแžŸ (GEMM) แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžขแžถแžแžผแž˜แžทแž… แž€แžถแžšแž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแžขแžŸแž˜แž€แžถแž› แž“แžทแž„แž€แžถแžšแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แž”แžŽแŸ’แžŽแžถแž›แŸแž™แŸ” แž‚แžŽแžทแžแžœแžทแž‘แŸ’แž™แžถ DxแžŠแŸ„แž™แž”แŸ’แžšแžพ generics แž“แžทแž„แž€แžถแžšแž”แžทแž‘ แžŠแŸ„แž™แž’แŸ’แžœแžพแžขแž“แŸ’แžแžšแž€แž˜แŸ’แž˜แž‡แžถแž˜แžฝแž™ CUDA cores แž€แŸ’แž“แžปแž„ C++/CCCLแŸ”

แžแžบแžŽแŸ‚แž› GPU แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แž“แŸ…แž€แŸ’แž“แžปแž„ Rust แž’แž˜แŸ’แž˜แžแžถ (แž˜แžทแž“แž˜แŸ‚แž“แž‡แžถแž—แžถแžŸแžถแž‘แŸ) แž”แŸ‰แžปแž“แŸ’แžแŸ‚แžแŸ’แžšแžผแžœแž”แžถแž“แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแžŸแŸ’แžแžถแž“ แž‚แŸ’แž˜แžถแž“แžŸแŸ’แžแž„แŸ‹แžŠแžถแžš แž แžพแž™แžขแžถแž…แž”แŸ’แžšแžพแž˜แžปแžแž„แžถแžšแž–แžธแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžแŸ‚แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ แž›แžธแž”แžแŸแžš แž“แžทแž„โ€‹แžขแžšแžผแž”แžธโ€‹แžฏแž€แž‘แŸแžŸ Rust แžŠแŸ‚แž›โ€‹แž”แžถแž“โ€‹แžšแŸ€แž”แžšแžถแž”แŸ‹โ€‹แž–แžธแž˜แžปแž“ แžŠแŸ„แž™โ€‹แž˜แžทแž“โ€‹แž…แžถแŸ†แž”แžถแž…แŸ‹โ€‹แž…แžผแž›โ€‹แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹โ€‹แž”แžŽแŸ’แžŽแžถแž›แŸแž™โ€‹แžŸแŸ’แžแž„แŸ‹แžŠแžถแžš Rust (libstd)แŸ” แž”แŸ’แžšแž—แŸแž‘โ€‹แžŠแŸ‚แž›โ€‹แž‚แžถแŸ†แž‘แŸ’แžšโ€‹แžšแžฝแž˜แž˜แžถแž“ แž”แŸ’แžšแž—แŸแž‘โ€‹แž”แž‹แž˜ (u8..u64, f32, f64, bool) แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แž€แžถแžšโ€‹แžšแžถแž”แŸ‹โ€‹แž…แŸ†แž“แžฝแž“ tuples แžขแžถแžšแŸ ([T; N]) แž“แžทแž„ slices (&[T]) แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžš match / if / if let แžšแž„แŸ’แžœแžทแž›โ€‹แž‡แžปแŸ† for แž“แžทแž„ while iterators (.iter(), .enumerate()) แž€แžถแžšแž”แžทแž‘ แž“แžทแž„ genericsแŸ” แž”แŸ’แžšแž—แŸแž‘ String, Vec แž“แžทแž„ Box แž˜แŸ‰แžถแž€แŸ’แžšแžผ format!, panic! แž“แžทแž„ println! แžœแžแŸ’แžแžป Trait แž“แžทแž„โ€‹แž˜แžปแžแž„แžถแžšโ€‹แž”แžŽแŸ’แžŽแžถแž›แŸแž™โ€‹แžŸแŸ’แžแž„แŸ‹แžŠแžถแžšโ€‹แžŠแŸ‚แž›โ€‹แžขแž“แžปแžœแžแŸ’แžโ€‹แžแžถแž˜แžšแž™แŸˆโ€‹แž€แžถแžšแž แŸ…โ€‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’โ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžš (แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„โ€‹แžฏแž€แžŸแžถแžš I/O แž“แžทแž„โ€‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšโ€‹แž”แžŽแŸ’แžแžถแž‰) แž˜แžทแž“โ€‹แž‚แžถแŸ†แž‘แŸ’แžšโ€‹แž‘แŸแŸ”

แž˜แžถแž“ แž€แž˜แŸ’แžšแžทแžแžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แžŸแŸ’แž“แžผแž› CUDA แž”แžธแž€แž˜แŸ’แžšแžทแžแž“แŸ…แž€แŸ’แž“แžปแž„ RustแŸ– แž€แžถแžšแž€แžถแžšแž–แžถแžšแž”แŸ’แžšแž–แŸแž“แŸ’แž’แž”แŸ’แžšแž—แŸแž‘ (แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–) แž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž”แŸ’แž›แžปแž€แž˜แžทแž“แž˜แžถแž“แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž– แž“แžทแž„แž€แžถแžšแž…แžผแž›แž”แŸ’แžšแžพแž€แžถแžšแžŽแŸ‚แž“แžถแŸ†แž•แŸ’แž“แŸ‚แž€แžšแžนแž„แž€แž˜แŸ’แžšแžทแžแž‘แžถแž”แŸ” แž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž“แŸƒแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž‚แžปแžŽแž˜แŸ‰แžถแž‘แŸ’แžšแžธแžŸแžŠแŸ‚แž›แž˜แžถแž“แž˜แžผแž›แžŠแŸ’แž‹แžถแž“แž›แžพ CUDA-oxide (GEMM SoL) แž“แŸ…แž›แžพ GPU B200 แžˆแžถแž“แžŠแž›แŸ‹แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแž…แŸ†แž“แžฝแž“ 868 แž–แžถแž“แŸ‹แž–แžถแž“แŸ‹แž›แžถแž“แž€แŸ’แž“แžปแž„แž˜แžฝแž™แžœแžทแž“แžถแž‘แžธ แžŠแŸ‚แž›แžŸแŸ’แž˜แžพแž“แžนแž„ 58% แž“แŸƒแž€แžถแžšแžขแž“แžปแžœแžแŸ’แžแž“แŸƒแž”แžŽแŸ’แžŽแžถแž›แŸแž™แžŠแŸ‚แž›แž”แžถแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž”แŸ’แžšแžŸแžพแžšแžกแžพแž„แŸ” แž‚แžผแž”แž”แžถแžŸ.

แž”แŸ’แžšแž—แž–: linux.org.ru

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster