ΠΡΠΈΠ²Π΅Ρ Π₯Π°Π±Ρ! ΠΠ°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Big Data ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΡΡ ΠΈ Π½Π°Π΄ΠΎ ΡΡΠΏΠ΅Π²Π°ΡΡ ΠΈΡ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ. ΠΠ°Ρ ΠΏΠΎΡΡ ΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (HPC, High Performance Computing), ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½Π° ΡΡΠ΅Π½Π΄Π΅ Kingston Π½Π°
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ GPU ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ
Π‘ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ Π² 2007 Π³ΠΎΠ΄Ρ Π±ΡΠ»Π° ΡΠΎΠ·Π΄Π°Π½Π° CUDA β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ GPU Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌΠΈΡ GPU Π²ΡΡΠΎΡΠ»ΠΈ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ GPU Π½Π°Ρ ΠΎΠ΄ΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ HPC-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ (Big Data), ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ (ML, machine learning) ΠΈ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ (DL, deep learning).
ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡ ΠΎΠΆΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ β ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ML ΠΎΠ±ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π° DL β Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΎΡ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠΉ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΡΠΎΡΠΎ ΠΊΠΎΡΠ΅ΠΊ ΠΈ ΡΠΎΠ±Π°ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Ρ Π‘Π₯Π. ΠΠ»Ρ ML ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅Π³ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΎΠ΄Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ. ΠΠ»Ρ DL Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅Π³ΠΎΠΌ Β«ΡΡΠΎ ΠΊΠΎΡΠΊΠ°Β» ΠΈΠ»ΠΈ Β«ΡΡΠΎ ΡΠΎΠ±Π°ΠΊΠ°Β». DL ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠ°Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ Π΄Π΅ΡΠ΅ΠΉ β ΠΈΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ±Π°ΠΊ ΠΈ ΠΊΠΎΡΠ΅ΠΊ Π² ΠΊΠ½ΠΈΠΆΠΊΠ°Ρ ΠΈ Π² ΠΆΠΈΠ·Π½ΠΈ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΡΡΠ½ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅), Π° ΠΌΠΎΠ·Π³ ΡΠ΅Π±Π΅Π½ΠΊΠ° ΡΠ°ΠΌ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (ΠΏΠΎ ΠΎΡΠ΅Π½ΠΊΠ°ΠΌ, ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎ ΡΠΎΡΠ½Π΅-Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·ΠΎΠ² Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π½Π½Π΅Π³ΠΎ Π΄Π΅ΡΡΡΠ²Π°). ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ DL Π΅ΡΠ΅ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½Ρ: ΡΡΠΎΠ±Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΌΠΎΠ³Π»Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π½Π΅ΠΉΡΠΎΠ½Π½Π°Ρ ΡΠ΅ΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² GPU ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΎΠ³ ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΡ: Π½Π° Π±Π°Π·Π΅ GPU ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ HPC-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Big Data, ML ΠΈ DL, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π΅Π»ΠΈΠΊΠΈ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠΎΠ΅ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² GPU, Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ½ΠΈΠΆΠ°ΡΡ ΠΎΠ±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π±ΡΡΡΡΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅Π΄ΠΎΠ³ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π²Π²ΠΈΠ΄Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ. Π Π°Π·Π½ΠΈΡΠ° Π² ΡΠΊΠΎΡΠΎΡΡΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° GPU ΠΈ ΡΠΈΠ½Ρ ΠΊ CPU/Π‘Π₯Π ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ GPUDirect Storage?
ΠΡΠΎΡΠ΅ΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ CPU, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΡΡΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»Π° Π±Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΌΠ΅ΠΆΠ΄Ρ GPU ΠΈ NVMe-Π΄ΠΈΡΠΊΠ°ΠΌΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΠΊΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° NVIDIA ΠΈ Π½Π°Π·Π²Π°Π»Π° Π΅Π΅ GPUDirect Storage. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΈΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ GPUDirect RDMA (Remote Direct Memory Address).
ΠΠΆΠ΅Π½ΡΠ΅Π½ Π₯ΡΠ°Π½Π³, Π³Π΅Π½Π΅ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ NVIDIA, ΠΏΡΠ΅Π·Π΅Π½ΡΡΠ΅Ρ GPUDirect Storage ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ GPUDirect RDMA Π½Π° Π²ΡΡΡΠ°Π²ΠΊΠ΅ SΠ‘-19. ΠΡΡΠΎΡΠ½ΠΈΠΊ: NVIDIA
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ GPUDirect RDMA ΠΈ GPUDirect Storage β Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ , ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ GPUDirect RDMA ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (NIC) ΠΈ ΠΏΠ°ΠΌΡΡΡΡ GPU, Π° GPUDirect Storage ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ NVMe ΠΈΠ»ΠΈ NVMe ΡΠ΅ΡΠ΅Π· Fabric (NVMe-oF) ΠΈ ΠΏΠ°ΠΌΡΡΡΡ GPU.
ΠΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, GPUDirect RDMA ΠΈ GPUDirect Storage, ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π»ΠΈΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· Π±ΡΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ CPU ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ (DMA) ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠ°ΡΡΡ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΡΡΠ°Π·Ρ Π² ΠΏΠ°ΠΌΡΡΡ GPU ΠΈΠ»ΠΈ ΠΈΠ· Π½Π΅Π΅ β ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π±Π΅Π· Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. ΠΠ»Ρ GPUDirect Storage ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ NVME-Π΄ΠΈΡΠΊ Π²Π½ΡΡΡΠΈ ΡΠ½ΠΈΡΠ° Ρ GPU, Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΊΠ°ΠΊ NVMe-oF.
Π‘Ρ
Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ GPUDirect Storage. ΠΡΡΠΎΡΠ½ΠΈΠΊ: NVIDIA
Hi-End Π‘Π₯Π Π½Π° NVMe Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Ρ Π½Π° ΡΡΠ½ΠΊΠ΅ HPC-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ GPUDirect Storage ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊΡΡΠΏΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ GPU, Π½Π° Π²ΡΡΡΠ°Π²ΠΊΠ΅ SC-19 Kingston ΠΏΠΎΠΊΠ°Π·Π°Π» Π΄Π΅ΠΌΠΎ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ· Π‘Π₯Π Π½Π° Π±Π°Π·Π΅ NVMe-Π΄ΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ½ΠΈΡΠ° Ρ GPU, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΡΡ Π°Π½Π°Π»ΠΈΠ· ΡΡΡΡΡ ΡΠΏΡΡΠ½ΠΈΠΊΠΎΠ²ΡΡ
ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π ΡΠ°ΠΊΠΎΠΉ Π‘Π₯Π Π½Π° Π±Π°Π·Π΅ 10 Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ DC1000M U.2 NVMe ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ
Π‘Π₯Π Π½Π° Π±Π°Π·Π΅ 10 Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ DC1000M U.2 NVMe Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΡΠΌΠΈ. ΠΡΡΠΎΡΠ½ΠΈΠΊ: Kingston
Π’Π°ΠΊΠ°Ρ Π‘Π₯Π Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠΎΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΡΠ° 1U ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΠ»Π° Π΄ΠΈΡΠΊΠΎΠ² DC1000M U.2 NVMe, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΅ΠΌΠΊΠΎΡΡΡΡ 3.84-7.68 Π’Π. DC1000M ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ NVMe SSD Π² ΡΠΎΡΠΌ-ΡΠ°ΠΊΡΠΎΡΠ΅ U.2 Π² Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ Kingston Π΄Π»Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ². ΠΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ΅ΠΉΡΠΈΠ½Π³ΠΎΠΌ Π²ΡΠ½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡΠΈ (DWPD, Drive writes per day), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΠΎΠ»Π½ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² Π΄Π΅Π½Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ.
Π ΡΠ΅ΡΡΠ΅ fio v3.13 Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ubuntu 18.04.3 LTS, Linux kernel 5.0.0-31-generic Π²ΡΡΡΠ°Π²ΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·Π΅Ρ Π‘Π₯Π ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ (Sustained Read) 5.8 ΠΌΠ»Π½ IOPS ΠΏΡΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ (Sustained Bandwidth) 23.8 ΠΠ±ΠΈΡ/Ρ.
ΠΡΠΈΡΠ»Ρ ΠΠ΅ΡΠ΅Ρ, Π±ΠΈΠ·Π½Π΅Ρ-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ SSD Π² Kingston, ΡΠ°ΠΊ ΠΎΡ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π» Π½ΠΎΠ²ΡΠ΅ Π‘Π₯Π: Β«ΠΡ Π³ΠΎΡΠΎΠ²Ρ ΡΠ½Π°Π±Π΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² SSD-ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ U.2 NVMe, ΡΡΠΎΠ±Ρ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ Π±ΡΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ. Π‘ΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ NVMe SSD ΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠ΅ΠΌΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Server Premier DRAM Π΄Π΅Π»Π°Π΅Ρ Kingston ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π½ΡΡ Π² ΠΎΡΡΠ°ΡΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ Β».
Π’Π΅ΡΡ gfio v3.13 ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ 23.8 ΠΠ±ΠΈΡ/Ρ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π‘Π₯Π Π½Π° Π΄ΠΈΡΠΊΠ°Ρ
DC1000M U.2 NVMe. ΠΡΡΠΎΡΠ½ΠΈΠΊ: Kingston
ΠΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΈΠΏΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π»Ρ HPC-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ GPUDirect Storage ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ Π΅ΠΉ? ΠΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΡΠΎΠΉΠΊΠΈ: ΠΎΠ΄ΠΈΠ½-Π΄Π²Π° ΡΠ½ΠΈΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ, Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π° Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ·Π»Ρ GPU ΠΈ CPU ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΡΠΎΠ² ΠΏΠΎΠ΄ Π‘Π₯Π.
Π‘ Π°Π½ΠΎΠ½ΡΠΎΠΌ GPUDirect Storage ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ Π΄ΡΡΠ³ΠΈΡ Π²Π΅Π½Π΄ΠΎΡΠΎΠ² GPU, Π΄Π»Ρ Kingston ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠΏΡΠΎΡ Π½Π° Π‘Π₯Π, ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ . ΠΠ°ΡΠΊΠ΅ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π‘Π₯Π, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ°Ρ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ 40- ΠΈΠ»ΠΈ 100-ΠΠ±ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°ΡΡ Π½Π° Π²Ρ ΠΎΠ΄Π΅ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΡ Ρ GPU. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»ΡΡΡΠ°ΡΠΊΠΎΡΠΎΡΡΠ½ΡΠ΅ Π‘Π₯Π, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ NVMe ΡΠ΅ΡΠ΅Π· Fabric, ΠΈΠ· ΡΠΊΠ·ΠΎΡΠΈΠΊΠΈ ΡΡΠ°Π½ΡΡ ΠΌΡΠΉΠ½ΡΡΡΠΈΠΌΠΎΠΌ Π΄Π»Ρ HPC-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ Π½Π°ΡΠΊΠΈ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ², ΠΎΠ½ΠΈ Π½Π°ΠΉΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΠ²Π½Ρ ΠΌΠ΅Π³Π°ΠΏΠΎΠ»ΠΈΡΠ° Safe City ΠΈΠ»ΠΈ ΡΠ΅Π½ΡΡΠΎΠ² Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ΅, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² HD-ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΊΡΠ½Π΄ΡΒ», β ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ» ΡΡΠ½ΠΎΡΠ½ΡΡ Π½ΠΈΡΡ ΡΠΎΠΏΠΎΠ²ΡΡ Π‘Π₯Π
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ
Kingston ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com