āĻ­ā§‡āĻ°āĻŋāĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ­ā§‡āĻ°āĻŋāĻ˛āĻ— āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤ āĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡

āĻ­ā§‡āĻ°āĻŋāĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ‡āĻ˛ā§‡āĻ•āĻŸā§āĻ°āĻ¨āĻŋāĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ“ āĻŽāĻĄā§‡āĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­ā§‡āĻ°āĻŋāĻ˛āĻ— āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤ GPU āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĨ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ˛āĻ— āĻ¸āĻŋāĻŽā§āĻ˛ā§‡āĻŸāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŦāĻžāĻ° āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻšāĻŋāĻĒ āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ MIT āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ­ā§‡āĻ°āĻŋāĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° (ASIC) āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻ›ā§‡ āĻ¯āĻž āĻŽā§‡āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ—āĻŖāĻ¨āĻžāĻ•ā§‡ āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ PyTorch āĻ—āĻ­ā§€āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ‚ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖāĻ¤āĻž āĻāĻŦāĻ‚ HIP (Heterogeneous-Compute Interface) API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ VeriGPU-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡, āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ API, āĻ¯ā§‡āĻŽāĻ¨ SYCL āĻāĻŦāĻ‚ NVIDIA CUDA-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤

RISC-V āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ GPU āĻŦāĻŋāĻ•āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ GPU āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸ā§‡āĻŸā§‡āĻ° āĻĢāĻ˛ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° RISC-V ISA-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ GPU āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ RISC-V āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ–āĻžāĻĒ āĻ–āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ RISC-V āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻ¨āĻ¯āĻŧāĨ¤ āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨āĻŸāĻŋ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻšāĻŋāĻĒ āĻŽā§āĻ¯āĻžāĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻāĻŦāĻ‚ āĻœāĻŸāĻŋāĻ˛āĻ¤āĻž āĻ•āĻŽāĻžāĻ¤ā§‡ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° BF16 āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§‡āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ‚ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•ā§āĻ¸āĻĒ, āĻ˛āĻ—, tanh āĻāĻŦāĻ‚ sqrt, āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĨ¤

āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ GPU āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ°, APU (āĻāĻ•ā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§‡āĻŸā§‡āĻĄ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ) āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ (“+”,”-“,”/,”*”), āĻāĻŦāĻ‚ āĻĢā§āĻ˛ā§‹āĻŸāĻŋāĻ‚ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ‰āĻ¨āĻŋāĻŸ (“+,” ,”*”) āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻž āĻŦā§āĻ˛āĻ•āĨ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻāĻŸāĻŋ LLVM-āĻāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ C++-āĻ āĻ•ā§‹āĻĄ āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸ā§‡āĻŽā§āĻŦāĻ˛āĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻŋāĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡, āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨, āĻĄā§‡āĻŸāĻž āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻŽā§‡āĻŽāĻ°āĻŋāĻ° āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻāĻŦāĻ‚ SIMT (āĻāĻ•āĻ• āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĨā§āĻ°ā§‡āĻĄ) āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ­ā§‡āĻ°āĻŋāĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ­ā§‡āĻ°āĻŋāĻ˛āĻ— āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ¨ā§āĻŽā§āĻ•ā§āĻ¤ āĻœāĻŋāĻĒāĻŋāĻ‡āĻ‰ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡


āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨