āĻā§āĻ°āĻŋāĻāĻŋāĻĒāĻŋāĻāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ˛ā§āĻāĻā§āĻ°āĻ¨āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ āĻŽāĻĄā§āĻ˛āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ˛āĻ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤ 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