ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ nbd-vram, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ°ΡΡΡ NVIDIA. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ°Π½ΡΠ²Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π½Π° Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ Ρ Π²ΠΏΠ°ΡΠ½Π½ΠΎΠΉ Π½Π΅ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ GPU NVIDIA. ΠΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π½ΠΎΡΡΠ±ΡΠΊΠ΅ Ρ 16 ΠΠ ΠΠΠ£ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠΎΠΉ NVIDIA GeForce RTX 3070 Ρ 8 ΠΠ VRAM ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ 7 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° zram Π΄Π»Ρ ΡΠΆΠ°ΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π½Π° SSD-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ²Π΅Π΄ΡΠ½ Π΄ΠΎ 46 ΠΠ (ΠΏΡΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ ΠΠΠ£ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΡΠΆΠ°ΡΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ zram ΠΈ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠ° Π½Π° SSD). ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 1.3 GB/s ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ Π½ΠΈΠΆΠ΅ NVMe ΠΈΠ·-Π·Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ GPU ΠΏΠΎ ΡΠΈΠ½Π΅ PCIe.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° nbd-vram, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ VRAM ΡΠ΅ΡΠ΅Π· API Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° CUDA ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠΎΡΠΌΠ΅ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° NBD (Network Block Device). Π ΡΠ΄ΡΠ΅ Linux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ nbd Π±Π΅Π· Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° /dev/nbdX, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ, Π½Π° Π½ΡΠΌ ΡΡΠ°ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ.
ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ nbd-vram ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡ ΠΈ ΡΠ΅ΡΠ²ΠΈΡ systemd Β«vram-swap-nbd.serviceΒ». ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ VRAM_SETUP_SIZE_MB ΠΈ VRAM_SWAP_PRIORITY. ΠΠΌΠ΅Π΅ΡΡΡ ΠΎΠΏΡΠΈΡ Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΎΡΡΠ±ΡΠΊΠ° ΠΊ ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΠΎΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ½Π΅ΡΠ³ΠΈΡ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ nbd-vram ΡΡΠ΅Π±ΡΠ΅ΡΡΡ NVIDIA GPU c ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ CUDA (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠΈΠΈ GeForce RTX ΠΈ GTX), Π΄ΡΠ°ΠΉΠ²Π΅Ρ NVIDIA Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ libcuda.so.1 (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° CUDA Toolkit Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ), ΡΠ΄ΡΠΎ Linux Π½ΠΎΠ²Π΅Π΅ 3.0 ΠΈ ΠΏΠ°ΠΊΠ΅Ρ nbd-client.
umthombo: opennet.ru
