ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, Π₯Π°Π±Ρ! ΠΠ°Π±ΠΎΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° Big Data ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π½Π°ΡΠ°ΡΡΠ²Π° ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠΏΠ΅Π΅ΠΌ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅. ΠΠ°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ Π·Π° Π΅Π΄Π½Π° ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ (HPC, High Performance Computing), ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠ°Π½Π΄Π° Π½Π° Kingston Π½Π° . Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Hi-End ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ (Π‘Π₯Π) Π² ΡΡΡΠ²ΡΡΠΈ Ρ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ (GPU) ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΡΠΈΠ½Π° GPUDirect Storage. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈΡ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π‘Π₯Π ΠΈ GPU, ΠΏΡΠ΅ΡΠΊΠ°ΡΠ°ΠΉΠΊΠΈ CPU, Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΡΠΊΠΎΡΡΠ²Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² GPU-ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ, Π·Π°ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Big Data ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ GPU. ΠΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° HPC-ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ ΠΏΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° Π‘Π₯Π Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΠΈΡΠΎΠΊΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄ β ΡΠ°ΠΊΠΈΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° 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 Π½Π° Π²ΡΡΡΠ°Π²ΠΊΠ΅ SC-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
