เจเจจเจตเฉ€เจกเฉ€เจ† เจจเฉ‡ CUDA-เจ†เจ•เจธเจพเจˆเจก เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจ‡เฉฑเจ• เจฐเจธเจŸ-เจŸเฉ‚-CUDA เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจนเฉˆเฅค

ะšะพะผะฟะฐะฝะธั 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% ะพั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบะธ เจ•เจฟเจŠเจฌเจฒเจพเจธ.

เจธเจฐเฉ‹เจค: linux.org.ru

DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ ๐Ÿ”ฅ DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ | ProHoster