LLVM āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ HPVM 2.0 (Heterogeneous Parallel Virtual Machine), āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°ā§āĻā§, āĻ¯āĻžāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻ¸āĻšāĻ āĻāĻ°āĻž āĻāĻŦāĻ CPUs, GPUs, FPGAs, āĻāĻŦāĻ āĻĄā§āĻŽā§āĻ¨-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻā§āĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄ Apache 2.0 āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻŋāĻ¨ā§āĻ¨āĻ§āĻ°ā§āĻŽā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻŋāĻ˛ āĻ¯āĻž āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻž āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽāĻĄā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (CPU āĻā§āĻ°, āĻā§āĻā§āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§, GPU, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¸ā§āĻ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽā§āĻŽāĻ°āĻŋ āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ HPVM āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŽā§āĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻ˛ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛-āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻŋāĻ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¨ā§āĻŦāĻŋāĻ¤ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž, āĻ¯āĻž GPUs, āĻā§āĻā§āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§, āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°, FPGA āĻāĻŦāĻ āĻ¸āĻš āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻļā§āĻˇ āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ° āĻāĻŋāĻĒāĨ¤
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, HPVM āĻāĻŋāĻ¨ā§āĻ¨āĻ§āĻ°ā§āĻŽā§ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻā§ - āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻāĻŦāĻ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°-āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ (IR), āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻ¸ā§āĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° (V-ISA) āĻāĻŦāĻ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻŋāĻ:
- HPVM āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻžāĻ¸ā§āĻ, āĻĄā§āĻāĻž āĻāĻŦāĻ āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻ¤āĻ°ā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻž āĻā§āĻ¯āĻžāĻĒāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļā§āĻ°ā§āĻŖāĻŋāĻŦāĻĻā§āĻ§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻā§āĻ°āĻžāĻĢ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ° LLVM āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ HPVM āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻā§āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻāĻŦāĻ āĻāĻžāĻ āĻāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤. āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻšāĻ˛ āĻĻāĻā§āĻˇ āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻŋāĻ¨ā§āĻ¨āĻ§āĻ°ā§āĻŽā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨āĨ¤
- āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨ā§āĻ¸āĻā§āĻ°āĻžāĻāĻļāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° (āĻāĻŋ-āĻāĻāĻāĻ¸āĻ) āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻŽāĻĄā§āĻ˛ - āĻĄā§āĻāĻž āĻĒā§āĻ°āĻŦāĻžāĻš āĻā§āĻ°āĻžāĻĢ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤ V-ISA āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻ°āĻā§āĻāĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻšāĻ¨āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻšāĻžāĻ°āĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ISA āĻ¸āĻžāĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻā§āĻĄ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž CPUs, GPUs, FPGAs āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻā§āĻ¸āĻŋāĻ˛āĻžāĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻāĻŽā§āĻĒāĻŋāĻāĻā§āĻļāĻ¨āĻžāĻ˛ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ (āĻā§āĻ°āĻžāĻĢ āĻāĻžāĻ āĻžāĻŽā§) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¯ā§ āĻā§āĻ¨āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻĨāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻāĻ˛āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻ¯āĻŧāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°ā§āĻā§āĻā§āĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻā§āĻĄ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°āĻā§āĻ˛āĻŋ NVIDIA GPUs (cuDNN āĻāĻŦāĻ OpenCL), Intel AVX āĻā§āĻā§āĻāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§, FPGAs āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻā§āĻ° x86 CPUs āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ ISA āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽāĨ¤ āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻāĻāĻĒāĻŋāĻāĻŋāĻāĻŽ āĻ āĻ¨ā§āĻŦāĻžāĻĻāĻāĻĻā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻŋāĻĒāĻŋāĻāĻ āĻāĻŦāĻ āĻā§āĻā§āĻāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšāĻžāĻ¤ā§ āĻ˛ā§āĻāĻž OpenCL āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨ā§āĻ¯āĻŧāĨ¤
HPVM 2.0 āĻāĻ° āĻŽā§āĻ˛ āĻāĻĻā§āĻāĻžāĻŦāĻ¨:
- āĻāĻāĻāĻŋ Hetero-C++ āĻāĻžāĻˇāĻžāĻ° āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž HPVM-āĻ āĻ¸āĻāĻāĻ˛āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ C/C++ āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻĄā§āĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻāĻ°āĻŖāĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§āĨ¤ Hetero-C++ āĻĄā§āĻāĻž-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻļā§āĻ°ā§āĻŖā§āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§āĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž HPVM āĻĨā§āĻ°ā§āĻĄ āĻā§āĻ°āĻžāĻĢā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°ā§āĨ¤
- Intel FPGA-āĻ¤ā§ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ FPGA āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻāĻ°āĻ¤ā§, OpenCL āĻāĻ° āĻāĻ¨ā§āĻ¯ Intel FPGA SDK āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻĄāĻŋāĻāĻ¸āĻ (āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻ¸ā§āĻĒā§āĻ¸ āĻāĻā§āĻ¸āĻĒā§āĻ˛ā§āĻ°ā§āĻļāĻ¨) āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŋāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻ§āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻāĻŋāĻ¤ā§ Intel āĻĨā§āĻā§ FPGA-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻŽāĻĄā§āĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ HPVM āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨āĻā§āĻ˛āĻŋ HPVM āĻāĻŦāĻ LLVM āĻĄā§āĻāĻžāĻĢā§āĻ˛ā§ āĻā§āĻ°āĻžāĻĢ āĻāĻāĻ¯āĻŧ āĻ¸ā§āĻ¤āĻ°ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- LLVM āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ 13.0 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻā§āĻĄ āĻŦā§āĻ¸, āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻā§āĻ˛āĻŋ āĻ¨ā§āĻāĻŋāĻā§āĻ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻāĻ āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ HPVM āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru