ಸಣ್ಣ ಉತ್ತರ: AI ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಬಳಸಿ, ಮೊದಲು nvidia-smi ನಲ್ಲಿ ಡ್ರೈವರ್ ಮತ್ತು GPU ಗೋಚರಿಸುತ್ತದೆಯೇ ಎಂದು ದೃಢೀಕರಿಸಿ , ನಂತರ ಹೊಂದಾಣಿಕೆಯ ಫ್ರೇಮ್ವರ್ಕ್/CUDA ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಸಣ್ಣ "ಮಾದರಿ + ಬ್ಯಾಚ್ ಆನ್ cuda" ಪರೀಕ್ಷೆಯನ್ನು ಚಲಾಯಿಸಿ. ನೀವು ಮೆಮೊರಿಯಿಂದ ಹೊರಗುಳಿದಿದ್ದರೆ, ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ ಮತ್ತು ಬಳಕೆ, ಮೆಮೊರಿ ಮತ್ತು ತಾಪಮಾನವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವಾಗ ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಬಳಸಿ.
ಪ್ರಮುಖ ಅಂಶಗಳು:
ಮೂಲ ಪರಿಶೀಲನೆಗಳು: nvidia-smi; ನೀವು ಫ್ರೇಮ್ವರ್ಕ್ಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಮೊದಲು ಚಾಲಕ ಗೋಚರತೆಯನ್ನು ಸರಿಪಡಿಸಿ.
ಸ್ಟ್ಯಾಕ್ ಹೊಂದಾಣಿಕೆ: ಕ್ರ್ಯಾಶ್ಗಳು ಮತ್ತು ಸುಲಭವಾಗಿ ಸ್ಥಾಪಿಸುವುದನ್ನು ತಡೆಯಲು ಡ್ರೈವರ್, CUDA ರನ್ಟೈಮ್ ಮತ್ತು ಫ್ರೇಮ್ವರ್ಕ್ ಆವೃತ್ತಿಗಳನ್ನು ಜೋಡಿಸಿ.
ಸಣ್ಣ ಯಶಸ್ಸು: ಪ್ರಯೋಗಗಳನ್ನು ಹೆಚ್ಚಿಸುವ ಮೊದಲು CUDA ನಲ್ಲಿ ಒಂದೇ ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ರನ್ಗಳನ್ನು ದೃಢೀಕರಿಸಿ.
VRAM ವಿಭಾಗ: ದೊಡ್ಡ ಮಾದರಿಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳಲು ಮಿಶ್ರ ನಿಖರತೆ, ಗ್ರೇಡಿಯಂಟ್ ಸಂಗ್ರಹಣೆ ಮತ್ತು ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ಅನ್ನು ಅವಲಂಬಿಸಿ.
ಮಾನಿಟರಿಂಗ್ ಅಭ್ಯಾಸ: ಬಳಕೆ, ಮೆಮೊರಿ ಮಾದರಿಗಳು, ಶಕ್ತಿ ಮತ್ತು ತಾಪಮಾನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ ಇದರಿಂದ ನೀವು ಅಡಚಣೆಗಳನ್ನು ಮೊದಲೇ ಗುರುತಿಸಬಹುದು.

ಇದರ ನಂತರ ನೀವು ಓದಲು ಇಷ್ಟಪಡಬಹುದಾದ ಲೇಖನಗಳು:
🔗 AI ಏಜೆಂಟ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು
ನಿಮ್ಮ ಏಜೆಂಟ್ನ ಕೆಲಸದ ಹರಿವು, ಪರಿಕರಗಳು, ಮೆಮೊರಿ ಮತ್ತು ಸುರಕ್ಷತಾ ಸಿಬ್ಬಂದಿಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ.
🔗 AI ಮಾದರಿಗಳನ್ನು ನಿಯೋಜಿಸುವುದು ಹೇಗೆ
ಪರಿಸರಗಳು, ಪ್ಯಾಕೇಜ್ ಮಾದರಿಗಳನ್ನು ಹೊಂದಿಸಿ ಮತ್ತು ಉತ್ಪಾದನೆಗೆ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ರವಾನಿಸಿ.
🔗 AI ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಳೆಯುವುದು ಹೇಗೆ
ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಆರಿಸಿ, ಮೌಲ್ಯಮಾಪನಗಳನ್ನು ನಡೆಸಿ ಮತ್ತು ಕಾಲಾನಂತರದಲ್ಲಿ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ.
🔗 AI ಬಳಸಿ ಕಾರ್ಯಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುವುದು ಹೇಗೆ
ಪ್ರಾಂಪ್ಟ್ಗಳು, ವರ್ಕ್ಫ್ಲೋಗಳು ಮತ್ತು ಏಕೀಕರಣಗಳೊಂದಿಗೆ ಪುನರಾವರ್ತಿತ ಕೆಲಸವನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ.
1) ದೊಡ್ಡ ಚಿತ್ರ - ನೀವು "GPU ನಲ್ಲಿ ತರಬೇತಿ" ಪಡೆದಾಗ ನೀವು ಏನು ಮಾಡುತ್ತಿದ್ದೀರಿ 🧠⚡
ನೀವು AI ಮಾದರಿಗಳಿಗೆ ತರಬೇತಿ ನೀಡುವಾಗ, ನೀವು ಹೆಚ್ಚಾಗಿ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಗಣಿತದ ಪರ್ವತವನ್ನು ಮಾಡುತ್ತಿದ್ದೀರಿ. GPU ಗಳನ್ನು ಆ ರೀತಿಯ ಸಮಾನಾಂತರ ಕೆಲಸಕ್ಕಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ PyTorch, TensorFlow ಮತ್ತು JAX ನಂತಹ ಚೌಕಟ್ಟುಗಳು GPU ಗೆ ಭಾರವಾದ ಹೊರೆಗಳನ್ನು ಆಫ್ಲೋಡ್ ಮಾಡಬಹುದು. (PyTorch CUDA ಡಾಕ್ಸ್, TensorFlow ಇನ್ಸ್ಟಾಲ್ (ಪಿಪ್), JAX ಕ್ವಿಕ್ಸ್ಟಾರ್ಟ್)
ಪ್ರಾಯೋಗಿಕವಾಗಿ, "ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಬಳಸುವುದು" ಎಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ:
-
ನಿಮ್ಮ ಮಾದರಿ ನಿಯತಾಂಕಗಳು (ಹೆಚ್ಚಾಗಿ) GPU VRAM ನಲ್ಲಿ ವಾಸಿಸುತ್ತವೆ
-
ನಿಮ್ಮ ಬ್ಯಾಚ್ಗಳು ಪ್ರತಿ ಹಂತದಲ್ಲೂ RAM ನಿಂದ VRAM ಗೆ ಸ್ಥಳಾಂತರಗೊಳ್ಳುತ್ತವೆ
-
CUDA ಕರ್ನಲ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ಮತ್ತು ಬ್ಯಾಕ್ಪ್ರೊಪ್ ರನ್ (CUDA ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗೈಡ್)
-
ನಿಮ್ಮ ಆಪ್ಟಿಮೈಜರ್ ನವೀಕರಣಗಳು GPU ನಲ್ಲಿ ನಡೆಯುತ್ತವೆ (ಸೂಕ್ತವಾಗಿ)
-
ನೀವು ಏನನ್ನೂ ಬೇಯಿಸದಂತೆ ತಾಪಮಾನ, ಮೆಮೊರಿ, ಬಳಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತೀರಿ 🔥 (NVIDIA nvidia-smi ಡಾಕ್ಸ್)
ಅದು ಹೆಚ್ಚು ಅನಿಸಿದರೆ ಚಿಂತಿಸಬೇಡಿ. ಇದು ಹೆಚ್ಚಾಗಿ ಪರಿಶೀಲನಾಪಟ್ಟಿ ಮತ್ತು ಕಾಲಾನಂತರದಲ್ಲಿ ನೀವು ಬೆಳೆಸಿಕೊಳ್ಳುವ ಕೆಲವು ಅಭ್ಯಾಸಗಳಾಗಿರುತ್ತದೆ.
2) NVIDIA GPU AI ತರಬೇತಿ ಸೆಟಪ್ನ ಉತ್ತಮ ಆವೃತ್ತಿಯನ್ನು ಯಾವುದು ಮಾಡುತ್ತದೆ 🤌
ಇದು "ಜೆಲ್ಲಿ ಮೇಲೆ ಮನೆ ಕಟ್ಟಬೇಡಿ" ವಿಭಾಗ. AI ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದರೆ ಕಡಿಮೆ-ನಾಟಕ. ಕಡಿಮೆ-ನಾಟಕ ಎಂದರೆ ಸ್ಥಿರ. ಸ್ಥಿರ ಎಂದರೆ ವೇಗ. ವೇಗ ಎಂದರೆ...ಸರಿ, ವೇಗ 😄
ಒಂದು ಘನ ತರಬೇತಿ ಸೆಟಪ್ ಸಾಮಾನ್ಯವಾಗಿ ಇವುಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ:
-
ನಿಮ್ಮ ಬ್ಯಾಚ್ ಗಾತ್ರ + ಮಾದರಿ + ಆಪ್ಟಿಮೈಜರ್ ಸ್ಥಿತಿಗಳಿಗೆ ಸಾಕಷ್ಟು VRAM
-
VRAM ಸೂಟ್ಕೇಸ್ ಜಾಗದಂತಿದೆ. ನೀವು ಚುರುಕಾಗಿ ಪ್ಯಾಕ್ ಮಾಡಬಹುದು, ಆದರೆ ಅನಂತವಾಗಿ ಪ್ಯಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.
-
-
ಹೊಂದಾಣಿಕೆಯಾದ ಸಾಫ್ಟ್ವೇರ್ ಸ್ಟ್ಯಾಕ್ (ಡ್ರೈವರ್ + CUDA ರನ್ಟೈಮ್ + ಫ್ರೇಮ್ವರ್ಕ್ ಹೊಂದಾಣಿಕೆ) (ಪೈಟಾರ್ಚ್ ಗೆಟ್ ಸ್ಟಾರ್ಟ್ (CUDA ಸೆಲೆಕ್ಟರ್), ಟೆನ್ಸರ್ಫ್ಲೋ ಇನ್ಸ್ಟಾಲ್ (ಪಿಪ್))
-
ವೇಗದ ಸಂಗ್ರಹಣೆ (ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ಗಳಿಗೆ NVMe ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡುತ್ತದೆ)
-
ಉತ್ತಮ CPU + RAM ಇರುವುದರಿಂದ ಡೇಟಾ ಲೋಡಿಂಗ್ GPU ಅನ್ನು ಹಾಳು ಮಾಡುವುದಿಲ್ಲ (PyTorch ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ)
-
ಕೂಲಿಂಗ್ ಮತ್ತು ಪವರ್ ಹೆಡ್ರೂಮ್ (ಅದು 😬 ಆಗುವವರೆಗೆ ಕಡಿಮೆ ಅಂದಾಜು ಮಾಡಲಾಗಿದೆ)
-
ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ ಪರಿಸರ (ವೆನ್ವಿ/ಕಾಂಡಾ ಅಥವಾ ಕಂಟೇನರ್ಗಳು) ಆದ್ದರಿಂದ ನವೀಕರಣಗಳು ಗೊಂದಲಮಯವಾಗುವುದಿಲ್ಲ (NVIDIA ಕಂಟೇನರ್ ಟೂಲ್ಕಿಟ್ ಅವಲೋಕನ)
ಮತ್ತು ಜನರು ಬಿಟ್ಟುಬಿಡುವ ಇನ್ನೊಂದು ವಿಷಯ:
-
ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಅಭ್ಯಾಸ - ನೀವು ಚಾಲನೆ ಮಾಡುವಾಗ ಕನ್ನಡಿಗಳನ್ನು ಪರಿಶೀಲಿಸುವಂತೆಯೇ GPU ಮೆಮೊರಿ ಮತ್ತು ಬಳಕೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತೀರಿ. (NVIDIA nvidia-smi ಡಾಕ್ಸ್)
3) ಹೋಲಿಕೆ ಕೋಷ್ಟಕ - NVIDIA GPU ಗಳೊಂದಿಗೆ ತರಬೇತಿ ನೀಡುವ ಜನಪ್ರಿಯ ವಿಧಾನಗಳು (ವಿಚಿತ್ರತೆಗಳೊಂದಿಗೆ) 📊
ಕೆಳಗೆ “ಯಾವುದು ಸರಿಹೊಂದುತ್ತದೆ?” ಎಂಬ ತ್ವರಿತ ಚೀಟ್ ಶೀಟ್ ಇದೆ. ಬೆಲೆಗಳು ಒರಟಾಗಿರುತ್ತವೆ (ಏಕೆಂದರೆ ವಾಸ್ತವವು ಬದಲಾಗುತ್ತದೆ), ಮತ್ತು ಹೌದು ಈ ಕೋಶಗಳಲ್ಲಿ ಒಂದು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸ್ವಲ್ಪ ಅವ್ಯವಸ್ಥಿತವಾಗಿದೆ.
| ಪರಿಕರ / ವಿಧಾನ | ಅತ್ಯುತ್ತಮವಾದದ್ದು | ಬೆಲೆ | ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ (ಹೆಚ್ಚಾಗಿ) |
|---|---|---|---|
| ಪೈಟಾರ್ಚ್ (ವೆನಿಲ್ಲಾ) ಪೈಟಾರ್ಚ್ | ಹೆಚ್ಚಿನ ಜನರು, ಹೆಚ್ಚಿನ ಯೋಜನೆಗಳು | ಉಚಿತ | ಹೊಂದಿಕೊಳ್ಳುವ, ಬೃಹತ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆ, ಸುಲಭ ದೋಷ ನಿವಾರಣೆ - ಎಲ್ಲರಿಗೂ ಅಭಿಪ್ರಾಯಗಳಿವೆ |
| ಪೈಟಾರ್ಚ್ ಲೈಟ್ನಿಂಗ್ ಲೈಟ್ನಿಂಗ್ ಡಾಕ್ಸ್ | ತಂಡಗಳು, ರಚನಾತ್ಮಕ ತರಬೇತಿ | ಉಚಿತ | ಬಾಯ್ಲರ್ ಪ್ಲೇಟ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಲೂಪ್ಗಳನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುತ್ತದೆ; ಕೆಲವೊಮ್ಮೆ "ಮ್ಯಾಜಿಕ್" ನಂತೆ ಭಾಸವಾಗುತ್ತದೆ, ಆದರೆ ಅದು ಆಗುವುದಿಲ್ಲ |
| ಹಗ್ಗಿಂಗ್ ಫೇಸ್ ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು + ಟ್ರೈನರ್ ಟ್ರೈನರ್ ಡಾಕ್ಸ್ | NLP + LLM ಫೈನ್-ಟ್ಯೂನಿಂಗ್ | ಉಚಿತ | ಬ್ಯಾಟರಿಗಳು-ಒಳಗೊಂಡ ತರಬೇತಿ, ಉತ್ತಮ ಡೀಫಾಲ್ಟ್ಗಳು, ತ್ವರಿತ ಗೆಲುವುಗಳು 👍 |
| ಆಕ್ಸಿಲರೇಟ್ ಮಾಡಿ ಡಾಕ್ಸ್ ಅನ್ನು ಆಕ್ಸಿಲರೇಟ್ | ನೋವುರಹಿತ ಬಹು-GPU | ಉಚಿತ | DDP ಕಡಿಮೆ ಕಿರಿಕಿರಿ ಉಂಟುಮಾಡುತ್ತದೆ, ಎಲ್ಲವನ್ನೂ ಪುನಃ ಬರೆಯದೆ ಹೆಚ್ಚಿಸಲು ಒಳ್ಳೆಯದು |
| ಡೀಪ್ಸ್ಪೀಡ್ ಜೆರೋ ಡಾಕ್ಸ್ | ದೊಡ್ಡ ಮಾದರಿಗಳು, ನೆನಪಿನ ತಂತ್ರಗಳು | ಉಚಿತ | ZeRO, ಆಫ್ಲೋಡ್, ಸ್ಕೇಲಿಂಗ್ - ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಸ್ವಲ್ಪ ಸುಲಭ ಆದರೆ ತೃಪ್ತಿಕರವಾಗಿರುತ್ತದೆ |
| ಟೆನ್ಸರ್ಫ್ಲೋ + ಕೆರಾಸ್ TF ಸ್ಥಾಪನೆ | ಉತ್ಪಾದನಾ ಮಾರ್ಗಗಳು | ಉಚಿತ | ಬಲವಾದ ಪರಿಕರಗಳು, ಉತ್ತಮ ನಿಯೋಜನಾ ಕಥೆ; ಕೆಲವು ಜನರು ಇದನ್ನು ಇಷ್ಟಪಡುತ್ತಾರೆ, ಕೆಲವರು ಸದ್ದಿಲ್ಲದೆ ಇಷ್ಟಪಡುವುದಿಲ್ಲ |
| JAX + ಅಗಸೆ JAX ಕ್ವಿಕ್ಸ್ಟಾರ್ಟ್ / ಅಗಸೆ ಡಾಕ್ಸ್ | ಸಂಶೋಧನೆ + ವೇಗದ ಹುಚ್ಚರು | ಉಚಿತ | XLA ಸಂಕಲನವು ಅತ್ಯಂತ ವೇಗವಾಗಿರಬಹುದು, ಆದರೆ ಡೀಬಗ್ ಮಾಡುವುದು ... ಅಮೂರ್ತವೆನಿಸಬಹುದು |
| NVIDIA NeMo NeMo ಅವಲೋಕನ | ಭಾಷಣ + ಎಲ್ಎಲ್ಎಂ ಕಾರ್ಯಪ್ರವಾಹಗಳು | ಉಚಿತ | NVIDIA-ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ ಸ್ಟ್ಯಾಕ್, ಉತ್ತಮ ಪಾಕವಿಧಾನಗಳು - ಫ್ಯಾನ್ಸಿ ಓವನ್ನಲ್ಲಿ ಅಡುಗೆ ಮಾಡಿದಂತೆ ಭಾಸವಾಗುತ್ತದೆ 🍳 |
| ಡಾಕರ್ + NVIDIA ಕಂಟೇನರ್ ಟೂಲ್ಕಿಟ್ ಟೂಲ್ಕಿಟ್ ಅವಲೋಕನ | ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ ಪರಿಸರಗಳು | ಉಚಿತ | “ನನ್ನ ಯಂತ್ರದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ” ಎಂಬುದು “ನಮ್ಮ ಯಂತ್ರಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ” (ಹೆಚ್ಚಾಗಿ, ಮತ್ತೆ) ಆಗುತ್ತದೆ |
4) ಮೊದಲ ಹಂತ - ನಿಮ್ಮ GPU ಸರಿಯಾಗಿ ಕಾಣಿಸುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ 🕵️♂️
ನೀವು ಒಂದು ಡಜನ್ ವಸ್ತುಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಮೊದಲು, ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
ನೀವು ನಿಜವಾಗಲು ಬಯಸುವ ವಿಷಯಗಳು:
-
ಯಂತ್ರವು GPU ಅನ್ನು ನೋಡುತ್ತದೆ
-
NVIDIA ಚಾಲಕವನ್ನು ಸರಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ
-
GPU ಬೇರೆ ಏನಾದರೂ ಮಾಡುವುದರಲ್ಲಿ ಸಿಲುಕಿಕೊಂಡಿಲ್ಲ
-
ನೀವು ಅದನ್ನು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಪ್ರಶ್ನಿಸಬಹುದು
ಕ್ಲಾಸಿಕ್ ಚೆಕ್ ಹೀಗಿದೆ:
-
ಎನ್ವಿಡಿಯಾ-ಸ್ಮಿ(ಎನ್ವಿಡಿಯಾ ಎನ್ವಿಡಿಯಾ-ಸ್ಮಿ ಡಾಕ್ಸ್)
ನೀವು ಹುಡುಕುತ್ತಿರುವುದು:
-
GPU ಹೆಸರು (ಉದಾ. RTX, A-ಸರಣಿ, ಇತ್ಯಾದಿ)
-
ಚಾಲಕ ಆವೃತ್ತಿ
-
ಮೆಮೊರಿ ಬಳಕೆ
-
ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಗಳು (NVIDIA nvidia-smi ಡಾಕ್ಸ್)
nvidia-smi ವಿಫಲವಾದರೆ , ಅಲ್ಲಿಯೇ ನಿಲ್ಲಿಸಿ. ಇನ್ನೂ ಫ್ರೇಮ್ವರ್ಕ್ಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಡಿ. ಇದು ನಿಮ್ಮ ಓವನ್ ಪ್ಲಗ್ ಇನ್ ಆಗಿಲ್ಲದಿದ್ದಾಗ ಬ್ರೆಡ್ ತಯಾರಿಸಲು ಪ್ರಯತ್ನಿಸುವಂತಿದೆ. ( NVIDIA ಸಿಸ್ಟಮ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಇಂಟರ್ಫೇಸ್ (NVSMI) )
ಸಣ್ಣ ಮಾನವ ಟಿಪ್ಪಣಿ: ಕೆಲವೊಮ್ಮೆ nvidia-smi ಕೆಲಸ ಮಾಡುತ್ತದೆ ಆದರೆ ನಿಮ್ಮ ತರಬೇತಿ ಇನ್ನೂ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ ಏಕೆಂದರೆ ನಿಮ್ಮ ಫ್ರೇಮ್ವರ್ಕ್ ಬಳಸುವ CUDA ರನ್ಟೈಮ್ ಚಾಲಕ ನಿರೀಕ್ಷೆಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ನೀವು ಮೂರ್ಖರಾಗಿರುವುದು ಇದರ ಅರ್ಥವಲ್ಲ. ಅದು... ಅದು ಹಾಗೆ 😭 (PyTorch Get Started (CUDA selector), TensorFlow install (pip))
5) ಸಾಫ್ಟ್ವೇರ್ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ನಿರ್ಮಿಸಿ - ಡ್ರೈವರ್ಗಳು, CUDA, cuDNN, ಮತ್ತು “ಹೊಂದಾಣಿಕೆ ನೃತ್ಯ” 💃
ಜನರು ಗಂಟೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದು ಇಲ್ಲಿಯೇ. ತಂತ್ರವೆಂದರೆ: ಒಂದು ಮಾರ್ಗವನ್ನು ಆರಿಸಿ ಮತ್ತು ಅದಕ್ಕೆ ಅಂಟಿಕೊಳ್ಳಿ.
ಆಯ್ಕೆ ಎ: ಫ್ರೇಮ್ವರ್ಕ್-ಬಂಡಲ್ಡ್ CUDA (ಸಾಮಾನ್ಯವಾಗಿ ಸುಲಭ)
ಅನೇಕ ಪೈಟಾರ್ಚ್ ಬಿಲ್ಡ್ಗಳು ತಮ್ಮದೇ ಆದ CUDA ರನ್ಟೈಮ್ನೊಂದಿಗೆ ಬರುತ್ತವೆ, ಅಂದರೆ ನಿಮಗೆ ಸಿಸ್ಟಮ್-ವೈಡ್ನಲ್ಲಿ ಪೂರ್ಣ CUDA ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ನಿಮಗೆ ಹೆಚ್ಚಾಗಿ ಹೊಂದಾಣಿಕೆಯ NVIDIA ಡ್ರೈವರ್ ಮಾತ್ರ ಬೇಕಾಗುತ್ತದೆ. (ಪೈಟಾರ್ಚ್ ಪ್ರಾರಂಭಿಸಲು (CUDA ಆಯ್ಕೆ), ಹಿಂದಿನ ಪೈಟಾರ್ಚ್ ಆವೃತ್ತಿಗಳು (CUDA ಚಕ್ರಗಳು))
ಪರ:
-
ಕಡಿಮೆ ಚಲಿಸುವ ಭಾಗಗಳು
-
ಸುಲಭವಾದ ಸ್ಥಾಪನೆಗಳು
-
ಪರಿಸರಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಹೆಚ್ಚು ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ
ಕಾನ್ಸ್:
-
ನೀವು ಪರಿಸರವನ್ನು ಆಕಸ್ಮಿಕವಾಗಿ ಬೆರೆಸಿದರೆ, ನೀವು ಗೊಂದಲಕ್ಕೊಳಗಾಗಬಹುದು
ಆಯ್ಕೆ ಬಿ: ಸಿಸ್ಟಮ್ CUDA ಟೂಲ್ಕಿಟ್ (ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣ)
ನೀವು ಸಿಸ್ಟಂನಲ್ಲಿ CUDA ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಅದಕ್ಕೆ ಜೋಡಿಸಿ. (CUDA ಟೂಲ್ಕಿಟ್ ಡಾಕ್ಸ್)
ಪರ:
-
ಕಸ್ಟಮ್ ನಿರ್ಮಾಣಗಳಿಗೆ ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣ, ಕೆಲವು ವಿಶೇಷ ಪರಿಕರಗಳು
-
ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಂಕಲಿಸಲು ಸೂಕ್ತವಾಗಿದೆ
ಕಾನ್ಸ್:
-
ಆವೃತ್ತಿಗಳನ್ನು ಹೊಂದಿಸಲು ಮತ್ತು ಸದ್ದಿಲ್ಲದೆ ಅಳಲು ಹೆಚ್ಚಿನ ಮಾರ್ಗಗಳು
ಕ್ಯುಡಿಎನ್ಎನ್ ಮತ್ತು ಎನ್ಸಿಸಿಎಲ್, ಮಾನವ ಪರಿಭಾಷೆಯಲ್ಲಿ
-
cuDNN ಆಳವಾದ ಕಲಿಕೆಯ ಆದಿಮಗಳನ್ನು (ಸುರುಳಿಗಳು, RNN ಬಿಟ್ಗಳು, ಇತ್ಯಾದಿ) ವೇಗಗೊಳಿಸುತ್ತದೆ (NVIDIA cuDNN ಡಾಕ್ಸ್)
-
NCCL ಬಹು-GPU ತರಬೇತಿಗಾಗಿ ವೇಗದ "GPU-ಟು-GPU ಸಂವಹನ" ಗ್ರಂಥಾಲಯವಾಗಿದೆ (NCCL ಅವಲೋಕನ)
ನೀವು ಬಹು-GPU ತರಬೇತಿ ಪಡೆದರೆ, NCCL ನಿಮ್ಮ ಉತ್ತಮ ಸ್ನೇಹಿತ - ಮತ್ತು ಕೆಲವೊಮ್ಮೆ, ನಿಮ್ಮ ಸ್ವಭಾವತಃ ಮನೋಭಾವದ ರೂಮ್ಮೇಟ್. (NCCL ಅವಲೋಕನ)
6) ನಿಮ್ಮ ಮೊದಲ GPU ತರಬೇತಿ ರನ್ (PyTorch ಉದಾಹರಣೆ ಮನಸ್ಥಿತಿ) ✅🔥
AI ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಅನುಸರಿಸಲು , ನಿಮಗೆ ಮೊದಲು ಬೃಹತ್ ಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲ. ನಿಮಗೆ ಸಣ್ಣ ಯಶಸ್ಸು ಬೇಕು.
ಮೂಲ ವಿಚಾರಗಳು:
-
ಸಾಧನವನ್ನು ಪತ್ತೆಹಚ್ಚಿ
-
ಮಾದರಿಯನ್ನು GPU ಗೆ ಸರಿಸಿ
-
ಟೆನ್ಸರ್ಗಳನ್ನು GPU ಗೆ ಸರಿಸಿ
-
ಅಲ್ಲಿ ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ರನ್ಗಳನ್ನು ದೃಢೀಕರಿಸಿ (ಪೈಟಾರ್ಚ್ CUDA ದಾಖಲೆಗಳು)
ನಾನು ಯಾವಾಗಲೂ ಬೇಗನೆ ವಿವೇಕವನ್ನು ಪರಿಶೀಲಿಸುವ ವಿಷಯಗಳು:
-
torch.cuda.is_available()ನಿಜ( torch.cuda.is_available ) ಎಂದು ಹಿಂತಿರುಗಿಸುತ್ತದೆ -
next(model.parameters()).devicecudaತೋರಿಸುತ್ತದೆ ( PyTorch Forum: CUDA ನಲ್ಲಿ ಮಾದರಿಯನ್ನು ಪರಿಶೀಲಿಸಿ ) -
ಒಂದೇ ಬ್ಯಾಚ್ ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ದೋಷವನ್ನುಂಟು ಮಾಡುವುದಿಲ್ಲ
-
ನೀವು ತರಬೇತಿಯನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ GPU ಮೆಮೊರಿ ಹೆಚ್ಚಾಗುತ್ತದೆ (ಒಳ್ಳೆಯ ಸಂಕೇತ!) (NVIDIA nvidia-smi ಡಾಕ್ಸ್)
"ಇದು ಏಕೆ ನಿಧಾನವಾಗಿದೆ?" ಎಂಬ ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆ
-
ನಿಮ್ಮ ಡೇಟಾಲೋಡರ್ ತುಂಬಾ ನಿಧಾನವಾಗಿದೆ (GPU ಐಡಲ್ ಆಗಿ ಕಾಯುತ್ತಿದೆ) (PyTorch ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್)
-
ನೀವು ಡೇಟಾವನ್ನು GPU ಗೆ ಸರಿಸಲು ಮರೆತಿದ್ದೀರಿ (ಓಹ್)
-
ಬ್ಯಾಚ್ ಗಾತ್ರ ಚಿಕ್ಕದಾಗಿದೆ (GPU ಕಡಿಮೆ ಬಳಕೆಯಲ್ಲಿದೆ)
-
ತರಬೇತಿ ಹಂತದಲ್ಲಿ ನೀವು ಭಾರೀ CPU ಪೂರ್ವ-ಸಂಸ್ಕರಣೆಯನ್ನು ಮಾಡುತ್ತಿದ್ದೀರಿ
ಅಲ್ಲದೆ, ಹೌದು, ಅಡಚಣೆಯು ಡೇಟಾ ಆಗಿದ್ದರೆ ನಿಮ್ಮ GPU ಸಾಮಾನ್ಯವಾಗಿ "ಅಷ್ಟು ಕಾರ್ಯನಿರತವಾಗಿಲ್ಲ" ಎಂದು ಕಾಣುತ್ತದೆ. ಇದು ರೇಸ್ ಕಾರ್ ಚಾಲಕನನ್ನು ನೇಮಿಸಿಕೊಂಡು ಪ್ರತಿ ಸುತ್ತು ಇಂಧನಕ್ಕಾಗಿ ಕಾಯುವಂತೆ ಮಾಡಿದಂತೆ.
7) VRAM ಆಟ - ಬ್ಯಾಚ್ ಗಾತ್ರ, ಮಿಶ್ರ ನಿಖರತೆ ಮತ್ತು ಸ್ಫೋಟಗೊಳ್ಳದಿರುವುದು 💥🧳
ಹೆಚ್ಚಿನ ಪ್ರಾಯೋಗಿಕ ತರಬೇತಿ ಸಮಸ್ಯೆಗಳು ನೆನಪಿನ ಶಕ್ತಿಗೆ ಸೀಮಿತವಾಗಿವೆ. ನೀವು ಒಂದು ಕೌಶಲ್ಯವನ್ನು ಕಲಿತರೆ, VRAM ನಿರ್ವಹಣೆಯನ್ನು ಕಲಿಯಿರಿ.
ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ತ್ವರಿತ ಮಾರ್ಗಗಳು
-
ಮಿಶ್ರ ನಿಖರತೆ (FP16/BF16)
-
ಸಾಮಾನ್ಯವಾಗಿ ದೊಡ್ಡ ವೇಗ ವರ್ಧಕವೂ ಸಹ. ಗೆಲುವು-ಗೆಲುವು 😌 (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್, ಟೆನ್ಸರ್ಫ್ಲೋ ಮಿಶ್ರ ನಿಖರತೆಯ ಮಾರ್ಗದರ್ಶಿ)
-
-
ಗ್ರೇಡಿಯಂಟ್ ಸಂಗ್ರಹಣೆ
-
ಬಹು ಹಂತಗಳಲ್ಲಿ ಇಳಿಜಾರುಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಮೂಲಕ ದೊಡ್ಡ ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಅನುಕರಿಸಿ (ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳ ತರಬೇತಿ ದಾಖಲೆಗಳು (ಗ್ರೇಡಿಯಂಟ್ ಅಕ್ಯುಲಂ, fp16))
-
-
ಕಡಿಮೆ ಅನುಕ್ರಮ ಉದ್ದ / ಕ್ರಾಪ್ ಗಾತ್ರ
-
ಕ್ರೂರ ಆದರೆ ಪರಿಣಾಮಕಾರಿ
-
-
ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್
-
ಮೆಮೊರಿಗಾಗಿ ಟ್ರೇಡ್ ಕಂಪ್ಯೂಟ್ (ಬ್ಯಾಕ್ವರ್ಡ್ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಗಳನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡಿ) (torch.utils.checkpoint)
-
-
ಹಗುರವಾದ ಆಪ್ಟಿಮೈಜರ್ ಬಳಸಿ
-
ಕೆಲವು ಆಪ್ಟಿಮೈಜರ್ಗಳು VRAM ಅನ್ನು ಅಗಿಯುವ ಹೆಚ್ಚುವರಿ ಸ್ಥಿತಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತವೆ
-
"ನಾನು ನಿಲ್ಲಿಸಿದ ನಂತರವೂ VRAM ಏಕೆ ತುಂಬಿರುತ್ತದೆ?" ಎಂಬ ಕ್ಷಣ
ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಮೆಮೊರಿಯನ್ನು ಕ್ಯಾಶ್ ಮಾಡುತ್ತವೆ . ಇದು ಸಾಮಾನ್ಯ. ಇದು ಭಯಾನಕವಾಗಿ ಕಾಣುತ್ತದೆ ಆದರೆ ಇದು ಯಾವಾಗಲೂ ಸೋರಿಕೆಯಾಗುವುದಿಲ್ಲ. ನೀವು ಪ್ಯಾಟರ್ನ್ಗಳನ್ನು ಓದಲು ಕಲಿಯುತ್ತೀರಿ. (ಪೈಟಾರ್ಚ್ CUDA ಸೆಮ್ಯಾಂಟಿಕ್ಸ್: ಕ್ಯಾಚಿಂಗ್ ಅಲೋಕೇಟರ್)
ಪ್ರಾಯೋಗಿಕ ಅಭ್ಯಾಸ:
-
ಗಡಿಯಾರ ಹಂಚಿಕೆ vs ಕಾಯ್ದಿರಿಸಿದ ಮೆಮೊರಿ (ಚೌಕಟ್ಟಿನ-ನಿರ್ದಿಷ್ಟ) (ಪೈಟಾರ್ಚ್ CUDA ಶಬ್ದಾರ್ಥಗಳು: ಕ್ಯಾಶಿಂಗ್ ಅಲೋಕೇಟರ್)
-
ಮೊದಲ ಭಯಾನಕ ಸಂಖ್ಯೆ ಕೇಳಿ ಭಯಪಡಬೇಡಿ 😅
8) GPU ನಿಜವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವಂತೆ ಮಾಡಿ - ನಿಮ್ಮ ಸಮಯಕ್ಕೆ ತಕ್ಕ ಕಾರ್ಯಕ್ಷಮತೆಯ ಶ್ರುತಿ 🏎️
"GPU ತರಬೇತಿ ಕೆಲಸ ಮಾಡುವುದು" ಮೊದಲ ಹಂತ. ಅದನ್ನು ವೇಗವಾಗಿ ಎರಡನೇ ಹಂತ.
ಹೆಚ್ಚಿನ ಪರಿಣಾಮ ಬೀರುವ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು
-
ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸಿ (ನೋವು ಬರುವವರೆಗೆ, ನಂತರ ಸ್ವಲ್ಪ ಕಡಿಮೆ ಮಾಡಿ)
-
ಡೇಟಾಲೋಡರ್ಗಳಲ್ಲಿ ಪಿನ್ ಮಾಡಿದ ಮೆಮೊರಿಯನ್ನು ಬಳಸಿ (ವೇಗವಾದ ಹೋಸ್ಟ್-ಟು-ಡಿವೈಸ್ ಪ್ರತಿಗಳು) ( ಪೈಟಾರ್ಚ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್ , ಪೈಟಾರ್ಚ್ ಪಿನ್_ಮೆಮೊರಿ/ನಾನ್_ಬ್ಲಾಕಿಂಗ್ ಟ್ಯುಟೋರಿಯಲ್ )
-
ಡೇಟಾಲೋಡರ್ ಕೆಲಸಗಾರರನ್ನು ಹೆಚ್ಚಿಸಿ (ಎಚ್ಚರಿಕೆಯಿಂದಿರಿ, ತುಂಬಾ ಹೆಚ್ಚು ಜನರು ಹಿಮ್ಮುಖವಾಗಬಹುದು) (ಪೈಟಾರ್ಚ್ ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್)
-
GPU ನಿಷ್ಕ್ರಿಯವಾಗದಂತೆ ಬ್ಯಾಚ್ಗಳನ್ನು ಮೊದಲೇ ಪಡೆದುಕೊಳ್ಳಿ
-
ಲಭ್ಯವಿರುವಾಗ ಫ್ಯೂಸ್ಡ್ ಆಪ್ಗಳು / ಆಪ್ಟಿಮೈಸ್ಡ್ ಕರ್ನಲ್ಗಳನ್ನು ಬಳಸಿ.
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಬಳಸಿ (ಮತ್ತೆ, ಅದು ತುಂಬಾ ಒಳ್ಳೆಯದು) (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್)
ಹೆಚ್ಚು ಕಡೆಗಣಿಸಲಾದ ಅಡಚಣೆ
ನಿಮ್ಮ ಸಂಗ್ರಹಣೆ ಮತ್ತು ಪೂರ್ವ-ಸಂಸ್ಕರಣಾ ಪೈಪ್ಲೈನ್. ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ ದೊಡ್ಡದಾಗಿದ್ದರೆ ಮತ್ತು ನಿಧಾನ ಡಿಸ್ಕ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ್ದರೆ, ನಿಮ್ಮ GPU ದುಬಾರಿ ಸ್ಪೇಸ್ ಹೀಟರ್ ಆಗುತ್ತದೆ. ಬಹಳ ಮುಂದುವರಿದ, ತುಂಬಾ ಹೊಳೆಯುವ ಸ್ಪೇಸ್ ಹೀಟರ್.
ಅಲ್ಲದೆ, ಒಂದು ಸಣ್ಣ ತಪ್ಪೊಪ್ಪಿಗೆ: ನಾನು ಒಂದು ಗಂಟೆಯ ಕಾಲ ಮಾದರಿಯನ್ನು "ಆಪ್ಟಿಮೈಸ್" ಮಾಡಿದ್ದೇನೆ, ಆದರೆ ಲಾಗಿಂಗ್ ಅಡಚಣೆಯಾಗಿದೆ ಎಂದು ಅರಿತುಕೊಂಡೆ. ಹೆಚ್ಚು ಮುದ್ರಿಸುವುದರಿಂದ ತರಬೇತಿ ನಿಧಾನವಾಗಬಹುದು. ಹೌದು, ಅದು ಮಾಡಬಹುದು.
9) ಬಹು-GPU ತರಬೇತಿ - DDP, NCCL, ಮತ್ತು ಅವ್ಯವಸ್ಥೆ ಇಲ್ಲದೆ ಸ್ಕೇಲಿಂಗ್ 🧩🤝
ನಿಮಗೆ ಹೆಚ್ಚಿನ ವೇಗ ಅಥವಾ ದೊಡ್ಡ ಮಾದರಿಗಳು ಬೇಕಾದರೆ, ನೀವು ಬಹು-GPU ಗಳನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತೀರಿ. ಇಲ್ಲಿ ವಿಷಯಗಳು ಖಾರವಾಗುತ್ತವೆ.
ಸಾಮಾನ್ಯ ವಿಧಾನಗಳು
-
ಡೇಟಾ ಪ್ಯಾರಲಲ್ (DDP)
-
GPU ಗಳಲ್ಲಿ ಬ್ಯಾಚ್ಗಳನ್ನು ವಿಭಜಿಸಿ, ಗ್ರೇಡಿಯಂಟ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ
-
ಸಾಮಾನ್ಯವಾಗಿ ಡೀಫಾಲ್ಟ್ "ಉತ್ತಮ" ಆಯ್ಕೆ (ಪೈಟಾರ್ಚ್ ಡಿಡಿಪಿ ಡಾಕ್ಸ್)
-
-
ಮಾದರಿ ಸಮಾನಾಂತರ / ಟೆನ್ಸರ್ ಸಮಾನಾಂತರ
-
ಮಾದರಿಯನ್ನು GPU ಗಳಲ್ಲಿ ವಿಭಜಿಸಿ (ದೊಡ್ಡ ಮಾದರಿಗಳಿಗೆ)
-
-
ಪೈಪ್ಲೈನ್ ಸಮಾನಾಂತರ
-
ಮಾದರಿ ಪದರಗಳನ್ನು ಹಂತಗಳಾಗಿ ವಿಭಜಿಸಿ (ಜೋಡಣೆ ರೇಖೆಯಂತೆ, ಆದರೆ ಟೆನ್ಸರ್ಗಳಿಗೆ)
-
ನೀವು ಪ್ರಾರಂಭಿಸುತ್ತಿದ್ದರೆ, DDP-ಶೈಲಿಯ ತರಬೇತಿಯು ನಿಮಗೆ ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ. (PyTorch DDP ಟ್ಯುಟೋರಿಯಲ್)
ಬಹು-GPU ಗಳ ಪ್ರಾಯೋಗಿಕ ಸಲಹೆಗಳು
-
GPU ಗಳು ಇದೇ ರೀತಿಯ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ (ಮಿಶ್ರಣವು ಅಡಚಣೆಯನ್ನುಂಟುಮಾಡಬಹುದು)
-
ಅಂತರ್ಸಂಪರ್ಕವನ್ನು ವೀಕ್ಷಿಸಿ: ಸಿಂಕ್-ಹೆವಿ ವರ್ಕ್ಲೋಡ್ಗಳಿಗೆ NVLink vs PCIe ಮುಖ್ಯ (NVIDIA NVLink ಅವಲೋಕನ, NVIDIA NVLink ದಾಖಲೆಗಳು)
-
ಪ್ರತಿ GPU ಬ್ಯಾಚ್ ಗಾತ್ರಗಳನ್ನು ಸಮತೋಲನದಲ್ಲಿಡಿ
-
CPU ಮತ್ತು ಸಂಗ್ರಹಣೆಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ - ಬಹು-GPU ಡೇಟಾ ಅಡಚಣೆಗಳನ್ನು ವರ್ಧಿಸಬಹುದು
ಮತ್ತು ಹೌದು, NCCL ದೋಷಗಳು "ಈಗ ಏಕೆ" ಎಂದು ಸುತ್ತುವರಿದ ನಿಗೂಢತೆಯಲ್ಲಿ ಸುತ್ತುವರಿದ ಒಗಟಿನಂತೆ ಭಾಸವಾಗಬಹುದು. ನೀವು ಶಾಪಗ್ರಸ್ತರಲ್ಲ. ಬಹುಶಃ. (NCCL ಅವಲೋಕನ)
10) ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಪ್ರೊಫೈಲಿಂಗ್ - ನಿಮ್ಮ ಸಮಯವನ್ನು ಉಳಿಸುವ ಆಕರ್ಷಕವಲ್ಲದ ವಿಷಯ 📈🧯
ಪ್ರಾರಂಭಿಸಲು ನಿಮಗೆ ಅಲಂಕಾರಿಕ ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳು ಅಗತ್ಯವಿಲ್ಲ. ಏನಾದರೂ ಆಫ್ ಆಗಿರುವಾಗ ನೀವು ಗಮನಿಸಬೇಕು.
ವೀಕ್ಷಿಸಲು ಪ್ರಮುಖ ಸಂಕೇತಗಳು
-
GPU ಬಳಕೆ: ಇದು ನಿರಂತರವಾಗಿ ಹೆಚ್ಚಿದೆಯೇ ಅಥವಾ ಮೊನಚಾದಂತಿದೆಯೇ?
-
ಮೆಮೊರಿ ಬಳಕೆ: ಸ್ಥಿರ, ಏರುವಿಕೆ ಅಥವಾ ವಿಚಿತ್ರ?
-
ವಿದ್ಯುತ್ ಬಳಕೆ: ಅಸಾಮಾನ್ಯವಾಗಿ ಕಡಿಮೆ ಎಂದರೆ ಕಡಿಮೆ ಬಳಕೆ ಎಂದರ್ಥ.
-
ತಾಪಮಾನ: ನಿರಂತರ ಹೆಚ್ಚಿನ ತಾಪಮಾನವು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಕುಂಠಿತಗೊಳಿಸಬಹುದು.
-
CPU ಬಳಕೆ: ಡೇಟಾ ಪೈಪ್ಲೈನ್ ಸಮಸ್ಯೆಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ (PyTorch ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ)
ಪ್ರೊಫೈಲಿಂಗ್ ಮನಸ್ಥಿತಿ (ಸರಳ ಆವೃತ್ತಿ)
-
GPU ಕಡಿಮೆ ಬಳಕೆಯಾಗಿದ್ದರೆ - ಡೇಟಾ ಅಥವಾ CPU ಅಡಚಣೆ
-
GPU ಹೆಚ್ಚಿದ್ದರೂ ನಿಧಾನವಾಗಿದ್ದರೆ - ಕರ್ನಲ್ ಅಸಮರ್ಥತೆ, ನಿಖರತೆ ಅಥವಾ ಮಾದರಿ ವಾಸ್ತುಶಿಲ್ಪ
-
ತರಬೇತಿ ವೇಗ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಕಡಿಮೆಯಾದರೆ - ಉಷ್ಣ ಥ್ರೊಟ್ಲಿಂಗ್, ಹಿನ್ನೆಲೆ ಪ್ರಕ್ರಿಯೆಗಳು, I/O ಅಡಚಣೆಗಳು
ನನಗೆ ಗೊತ್ತು, ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದು ತಮಾಷೆಯಾಗಿ ಕಾಣುವುದಿಲ್ಲ. ಆದರೆ ಅದು ಫ್ಲಾಸ್ಸಿಂಗ್ನಂತೆ. ಕಿರಿಕಿರಿ ಉಂಟುಮಾಡಬಹುದು, ನಂತರ ಇದ್ದಕ್ಕಿದ್ದಂತೆ ನಿಮ್ಮ ಜೀವನವು ಸುಧಾರಿಸುತ್ತದೆ.
11) ದೋಷನಿವಾರಣೆ - ಸಾಮಾನ್ಯ ಶಂಕಿತರು (ಮತ್ತು ಕಡಿಮೆ ಸಾಮಾನ್ಯರು) 🧰😵💫
ಈ ವಿಭಾಗವು ಮೂಲತಃ: "ಅದೇ ಐದು ಸಂಚಿಕೆಗಳು, ಶಾಶ್ವತವಾಗಿ."
ಸಮಸ್ಯೆ: CUDA ಮೆಮೊರಿಯಲ್ಲಿಲ್ಲ
ಪರಿಹಾರಗಳು:
-
ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಬಳಸಿ (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್, ಟೆನ್ಸರ್ಫ್ಲೋ ಮಿಶ್ರ ನಿಖರತೆಯ ಮಾರ್ಗದರ್ಶಿ)
-
ಗ್ರೇಡಿಯಂಟ್ ಕ್ರೋಢೀಕರಣ (ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳ ತರಬೇತಿ ದಾಖಲೆಗಳು (ಗ್ರೇಡಿಯಂಟ್ ಕ್ರೋಢೀಕರಣ, fp16))
-
ಚೆಕ್ಪಾಯಿಂಟ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಗಳು (torch.utils.checkpoint)
-
ಇತರ GPU ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಮುಚ್ಚಿ
ಸಮಸ್ಯೆ: ತರಬೇತಿ ಆಕಸ್ಮಿಕವಾಗಿ CPU ನಲ್ಲಿ ರನ್ ಆಗುತ್ತದೆ
ಪರಿಹಾರಗಳು:
-
ಮಾದರಿಯನ್ನು
cuda -
ಟೆನ್ಸರ್ಗಳು
cuda -
ಫ್ರೇಮ್ವರ್ಕ್ ಸಾಧನ ಸಂರಚನೆಯನ್ನು ಪರಿಶೀಲಿಸಿ (ಪೈಟಾರ್ಚ್ CUDA ಡಾಕ್ಸ್)
ಸಮಸ್ಯೆ: ವಿಚಿತ್ರ ಕ್ರ್ಯಾಶ್ಗಳು ಅಥವಾ ಅಕ್ರಮ ಮೆಮೊರಿ ಪ್ರವೇಶ
ಪರಿಹಾರಗಳು:
-
ಚಾಲಕ + ರನ್ಟೈಮ್ ಹೊಂದಾಣಿಕೆಯನ್ನು ದೃಢೀಕರಿಸಿ (ಪೈಟಾರ್ಚ್ ಪ್ರಾರಂಭಿಸಿ (CUDA ಆಯ್ಕೆದಾರ), ಟೆನ್ಸರ್ಫ್ಲೋ ಸ್ಥಾಪನೆ (ಪಿಪ್))
-
ಸ್ವಚ್ಛವಾದ ಪರಿಸರ ಪ್ರಯತ್ನಿಸಿ
-
ಕಸ್ಟಮ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿ
-
ಪುನರುತ್ಪಾದಿಸಲು ನಿರ್ಣಾಯಕ-ರೀತಿಯಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳೊಂದಿಗೆ ಮರು ರನ್ ಮಾಡಿ
ಸಮಸ್ಯೆ: ನಿರೀಕ್ಷೆಗಿಂತ ನಿಧಾನ
ಪರಿಹಾರಗಳು:
-
ಡೇಟಾಲೋಡರ್ ಥ್ರೋಪುಟ್ ಪರಿಶೀಲಿಸಿ (ಪೈಟಾರ್ಚ್ ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್)
-
ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸಿ
-
ಲಾಗಿಂಗ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಿ
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್)
-
ಪ್ರೊಫೈಲ್ ಹಂತದ ಸಮಯದ ವಿವರ
ಸಮಸ್ಯೆ: ಬಹು-GPU ಸ್ಥಗಿತಗೊಳ್ಳುತ್ತದೆ
ಪರಿಹಾರಗಳು:
-
ಸರಿಯಾದ ಬ್ಯಾಕೆಂಡ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ದೃಢೀಕರಿಸಿ (ಪೈಟಾರ್ಚ್ ವಿತರಿಸಿದ ದಾಖಲೆಗಳು)
-
NCCL ಪರಿಸರ ಸಂರಚನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ (ಎಚ್ಚರಿಕೆಯಿಂದ) (NCCL ಅವಲೋಕನ)
-
ಮೊದಲು ಒಂದೇ GPU ಪರೀಕ್ಷಿಸಿ
-
ನೆಟ್ವರ್ಕ್ / ಇಂಟರ್ಕನೆಕ್ಟ್ ಆರೋಗ್ಯಕರವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
ಸಣ್ಣ ಬ್ಯಾಕ್ಟ್ರ್ಯಾಕಿಂಗ್ ಟಿಪ್ಪಣಿ: ಕೆಲವೊಮ್ಮೆ ಪರಿಹಾರವು ಅಕ್ಷರಶಃ ರೀಬೂಟ್ ಆಗುತ್ತಿದೆ. ಇದು ಮೂರ್ಖತನವೆನಿಸುತ್ತದೆ. ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಕಂಪ್ಯೂಟರ್ಗಳು ಹಾಗೆ.
12) ವೆಚ್ಚ ಮತ್ತು ಪ್ರಾಯೋಗಿಕತೆ - ಹೆಚ್ಚು ಯೋಚಿಸದೆ ಸರಿಯಾದ NVIDIA GPU ಮತ್ತು ಸೆಟಪ್ ಅನ್ನು ಆರಿಸುವುದು 💸🧠
ಪ್ರತಿಯೊಂದು ಯೋಜನೆಗೂ ಅತಿದೊಡ್ಡ GPU ಅಗತ್ಯವಿಲ್ಲ. ಕೆಲವೊಮ್ಮೆ ನಿಮಗೆ ಸಾಕಷ್ಟು GPU ಬೇಕಾಗುತ್ತದೆ.
ನೀವು ಮಧ್ಯಮ ಮಾದರಿಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸುತ್ತಿದ್ದರೆ
-
VRAM ಮತ್ತು ಸ್ಥಿರತೆಗೆ ಆದ್ಯತೆ ನೀಡಿ
-
ಮಿಶ್ರ ನಿಖರತೆ ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡುತ್ತದೆ (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್, ಟೆನ್ಸರ್ಫ್ಲೋ ಮಿಶ್ರ ನಿಖರತೆಯ ಮಾರ್ಗದರ್ಶಿ)
-
ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದೇ ಒಂದು ಬಲವಾದ GPU ನಿಂದ ತಪ್ಪಿಸಿಕೊಳ್ಳಬಹುದು
ನೀವು ಮೊದಲಿನಿಂದಲೂ ದೊಡ್ಡ ಮಾದರಿಗಳಿಗೆ ತರಬೇತಿ ನೀಡುತ್ತಿದ್ದರೆ
-
ನಿಮಗೆ ಬಹು GPU ಗಳು ಅಥವಾ ತುಂಬಾ ದೊಡ್ಡ VRAM ಬೇಕಾಗುತ್ತದೆ
-
ನೀವು NVLink ಮತ್ತು ಸಂವಹನ ವೇಗದ ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸುತ್ತೀರಿ (NVIDIA NVLink ಅವಲೋಕನ, NCCL ಅವಲೋಕನ)
-
ನೀವು ಬಹುಶಃ ಮೆಮೊರಿ ಆಪ್ಟಿಮೈಜರ್ಗಳನ್ನು ಬಳಸುತ್ತೀರಿ (ZeRO, ಆಫ್ಲೋಡ್, ಇತ್ಯಾದಿ) (DeepSpeed ZeRO ಡಾಕ್ಸ್, ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಂಶೋಧನೆ: ZeRO/DeepSpeed)
ನೀವು ಪ್ರಯೋಗ ಮಾಡುತ್ತಿದ್ದರೆ
-
ನೀವು ವೇಗದ ಪುನರಾವರ್ತನೆಯನ್ನು ಬಯಸುತ್ತೀರಿ
-
ನಿಮ್ಮ ಎಲ್ಲಾ ಹಣವನ್ನು GPU ಗಾಗಿ ಖರ್ಚು ಮಾಡಿ ನಂತರ ಸಂಗ್ರಹಣೆ ಮತ್ತು RAM ಅನ್ನು ಹಾಳು ಮಾಡಬೇಡಿ
-
ಸಮತೋಲಿತ ವ್ಯವಸ್ಥೆಯು ಅಸಮಪಾರ್ಶ್ವವನ್ನು ಸೋಲಿಸುತ್ತದೆ (ಹೆಚ್ಚಿನ ದಿನಗಳು)
ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ನೀವು "ಪರಿಪೂರ್ಣ" ಹಾರ್ಡ್ವೇರ್ ಆಯ್ಕೆಗಳನ್ನು ಬೆನ್ನಟ್ಟುವಲ್ಲಿ ವಾರಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡಬಹುದು. ಕಾರ್ಯಸಾಧ್ಯವಾದದ್ದನ್ನು ನಿರ್ಮಿಸಿ, ಅಳತೆ ಮಾಡಿ, ನಂತರ ಹೊಂದಿಸಿ. ನಿಜವಾದ ಶತ್ರು ಪ್ರತಿಕ್ರಿಯೆ ಲೂಪ್ ಹೊಂದಿಲ್ಲ.
ಮುಕ್ತಾಯ ಟಿಪ್ಪಣಿಗಳು - ನಿಮ್ಮ ಮನಸ್ಸನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ AI ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು 😌✅
AI ತರಬೇತಿಗಾಗಿ NVIDIA GPU ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಈ ಮಾರ್ಗದರ್ಶಿಯಿಂದ ನೀವು ಬೇರೇನನ್ನೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದಿದ್ದರೆ , ಇದನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ:
-
ಮೊದಲು
nvidia-smiಕೆಲಸ ಮಾಡುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ( NVIDIA nvidia-smi ಡಾಕ್ಸ್ ) -
ಸ್ವಚ್ಛವಾದ ಸಾಫ್ಟ್ವೇರ್ ಮಾರ್ಗವನ್ನು ಆರಿಸಿ (ಫ್ರೇಮ್ವರ್ಕ್-ಬಂಡಲ್ CUDA ಸಾಮಾನ್ಯವಾಗಿ ಸುಲಭವಾಗಿದೆ) (ಪೈಟಾರ್ಚ್ ಪ್ರಾರಂಭಿಸಿ (CUDA ಆಯ್ಕೆ))
-
ಸ್ಕೇಲಿಂಗ್ ಹೆಚ್ಚಿಸುವ ಮೊದಲು ಒಂದು ಸಣ್ಣ GPU ತರಬೇತಿ ರನ್ ಅನ್ನು ಮೌಲ್ಯೀಕರಿಸಿ (torch.cuda.is_available)
-
ಸೀಮಿತ ಪ್ಯಾಂಟ್ರಿ ಶೆಲ್ಫ್ನಂತೆ VRAM ಅನ್ನು ನಿರ್ವಹಿಸಿ
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಮೊದಲೇ ಬಳಸಿ - ಇದು ಕೇವಲ “ಸುಧಾರಿತ ವಿಷಯ”ವಲ್ಲ (ಪೈಟಾರ್ಚ್ ಎಎಮ್ಪಿ ಡಾಕ್ಸ್, ಟೆನ್ಸರ್ಫ್ಲೋ ಮಿಶ್ರ ನಿಖರತೆಯ ಮಾರ್ಗದರ್ಶಿ)
-
ಅದು ನಿಧಾನವಾಗಿದ್ದರೆ, GPU (PyTorch ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ)
-
ಮಲ್ಟಿ-ಜಿಪಿಯು ಶಕ್ತಿಶಾಲಿಯಾಗಿದೆ ಆದರೆ ಸಂಕೀರ್ಣತೆಯನ್ನು ಸೇರಿಸುತ್ತದೆ - ಕ್ರಮೇಣ ಸ್ಕೇಲ್ ಮಾಡಿ (ಪೈಟಾರ್ಚ್ ಡಿಡಿಪಿ ಡಾಕ್ಸ್, ಎನ್ಸಿಸಿಎಲ್ ಅವಲೋಕನ)
-
ಸಮಸ್ಯೆಗಳು ಬೇಗನೆ ಕಾಣಿಸಿಕೊಳ್ಳಲು ಬಳಕೆ ಮತ್ತು ತಾಪಮಾನವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ (NVIDIA nvidia-smi ಡಾಕ್ಸ್)
NVIDIA GPU ಗಳಲ್ಲಿ ತರಬೇತಿ ಪಡೆಯುವುದು ಬೆದರಿಸುವಂತಹ ಕೌಶಲ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ನಂತರ ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಅದು ಸಾಮಾನ್ಯವಾಗುತ್ತದೆ. ಚಾಲನೆ ಕಲಿಯುವಂತೆ. ಮೊದಲಿಗೆ ಎಲ್ಲವೂ ಜೋರಾಗಿ ಮತ್ತು ಗೊಂದಲಮಯವಾಗಿರುತ್ತದೆ ಮತ್ತು ನೀವು ಚಕ್ರವನ್ನು ತುಂಬಾ ಗಟ್ಟಿಯಾಗಿ ಹಿಡಿಯುತ್ತೀರಿ. ನಂತರ ಒಂದು ದಿನ ನೀವು ಕ್ರೂಸ್ ಮಾಡುತ್ತಿದ್ದೀರಿ, ಕಾಫಿ ಹೀರುತ್ತಿದ್ದೀರಿ ಮತ್ತು ಬ್ಯಾಚ್ ಗಾತ್ರದ ಸಮಸ್ಯೆಯನ್ನು ಅದು ದೊಡ್ಡ ವಿಷಯವಲ್ಲ ಎಂಬಂತೆ ಆಕಸ್ಮಿಕವಾಗಿ ಡೀಬಗ್ ಮಾಡುತ್ತಿದ್ದೀರಿ.
ನೈಜ-ಪ್ರಪಂಚದ ಉದಾಹರಣೆ: ಒಂದು NVIDIA GPU ನಲ್ಲಿ ಸಣ್ಣ ಇಮೇಜ್ ವರ್ಗೀಕರಣಕಾರಕಕ್ಕೆ ತರಬೇತಿ ನೀಡುವುದು 🧪🖼️
ಸನ್ನಿವೇಶ
ಒಂದು ಸಣ್ಣ ಇ-ಕಾಮರ್ಸ್ ತಂಡವು ಉತ್ಪನ್ನ ಫೋಟೋಗಳನ್ನು ಐದು ವಿಭಾಗಗಳಾಗಿ ವಿಂಗಡಿಸುವ ಇಮೇಜ್ ವರ್ಗೀಕರಣಕಾರರಿಗೆ ತರಬೇತಿ ನೀಡಲು ಬಯಸುತ್ತದೆ ಎಂದು ಊಹಿಸಿ: ಶೂಗಳು, ಚೀಲಗಳು, ಜಾಕೆಟ್ಗಳು, ಕೈಗಡಿಯಾರಗಳು ಮತ್ತು ಪರಿಕರಗಳು.
ಅವರು ಒಂದು ದೈತ್ಯ ಮಾದರಿಯನ್ನು ಮೊದಲಿನಿಂದಲೂ ತರಬೇತಿ ನೀಡುತ್ತಿಲ್ಲ. ಅವರು ಒಂದೇ NVIDIA GPU ನಲ್ಲಿ ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ದೃಷ್ಟಿ ಮಾದರಿಯನ್ನು ಉತ್ತಮಗೊಳಿಸುತ್ತಿದ್ದಾರೆ, ಆದ್ದರಿಂದ ತಂಡವು ಈ ಕಲ್ಪನೆಯನ್ನು ಅಳೆಯಲು ಯೋಗ್ಯವಾಗಿದೆಯೇ ಎಂದು ತ್ವರಿತವಾಗಿ ಪರೀಕ್ಷಿಸಬಹುದು.
ಗುರಿ ಸರಳವಾಗಿದೆ: GPU ಸೆಟಪ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಿ, CUDA ಅವ್ಯವಸ್ಥೆಯನ್ನು ತಪ್ಪಿಸಿ, ಮತ್ತು ದೊಡ್ಡ ಹಾರ್ಡ್ವೇರ್ ಅಥವಾ ಕ್ಲೌಡ್ ರನ್ಗಳಿಗೆ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುವ ಮೊದಲು ಪುನರಾವರ್ತಿತ ತರಬೇತಿ ಲೂಪ್ ಅನ್ನು ನಿರ್ಮಿಸಿ.
ಸೆಟಪ್ಗೆ ಏನು ಬೇಕು
ಈ ರೀತಿಯ ಪರೀಕ್ಷೆಗಾಗಿ, ನಿಮಗೆ ಇದು ಬೇಕಾಗುತ್ತದೆ:
ಒಂದು NVIDIA GPU ಮತ್ತು ಬ್ಯಾಚ್ ಗಾತ್ರಕ್ಕೆ ಸಾಕಷ್ಟು VRAM ಹೊಂದಿರುವ ಯಂತ್ರ
ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ NVIDIA ಚಾಲಕವು nvidia-smi ನೊಂದಿಗೆ ದೃಢೀಕರಿಸಲ್ಪಟ್ಟಿದೆ
ಪೈಟಾರ್ಚ್, ಟೆನ್ಸರ್ಫ್ಲೋ ಅಥವಾ ಜೆಎಎಕ್ಸ್ಗಾಗಿ ಸ್ವಚ್ಛ ಪೈಥಾನ್ ಪರಿಸರ
ರೈಲು, ಮೌಲ್ಯೀಕರಣ ಮತ್ತು ಪರೀಕ್ಷಾ ಫೋಲ್ಡರ್ಗಳಾಗಿ ಆದರ್ಶಪ್ರಾಯವಾಗಿ ವಿಭಜಿಸಲಾದ ಸಣ್ಣ ಲೇಬಲ್ ಮಾಡಲಾದ ಚಿತ್ರ ಡೇಟಾಸೆಟ್
ಹೋಲಿಕೆಗಾಗಿ ಮೂಲ CPU ಸಮಯ ರನ್
ಹಂತದ ಸಮಯ, GPU ಮೆಮೊರಿ, GPU ಬಳಕೆ, ತಾಪಮಾನ ಮತ್ತು ಮೌಲ್ಯೀಕರಣ ನಿಖರತೆಯೊಂದಿಗೆ ಸರಳ ಲಾಗಿಂಗ್ ಶೀಟ್
ಸರಿಯಾಗಿ ತರಬೇತಿ ನೀಡುವ ಮೊದಲು, ತಂಡವು ಒಂದು ಸಣ್ಣ CUDA ಹೊಗೆ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸಬೇಕು: ಒಂದು ಬ್ಯಾಚ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ, ಮಾದರಿ ಮತ್ತು ಬ್ಯಾಚ್ ಅನ್ನು cuda ಗೆ ಸರಿಸಿ, ಒಂದು ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ಅನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು nvidia-smi ನಲ್ಲಿ GPU ಮೆಮೊರಿ ಹೆಚ್ಚಳವನ್ನು ದೃಢೀಕರಿಸಿ.
ಉದಾಹರಣೆ ಸೂಚನೆ
ಪ್ರಾಯೋಗಿಕ ಯೋಜನೆಯ ಸೂಚನೆಯು ಈ ರೀತಿ ಕಾಣಿಸಬಹುದು:
ಪೂರ್ವ-ತರಬೇತಿ ಪಡೆದ ResNet-ಶೈಲಿಯ ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಣ್ಣ ಉತ್ಪನ್ನ ಇಮೇಜ್ ವರ್ಗೀಕರಣವನ್ನು ತರಬೇತಿ ಮಾಡಿ. ಮೊದಲು nvidia-smi GPU ಅನ್ನು ನೋಡಬಹುದೆಂದು ಖಚಿತಪಡಿಸಿ. ನಂತರ ಪೂರ್ಣ ತರಬೇತಿಯ ಮೊದಲು ಒಂದು-ಬ್ಯಾಚ್ CUDA ಪರೀಕ್ಷೆಯನ್ನು ರನ್ ಮಾಡಿ. ಬೆಂಬಲಿತವಾಗಿದ್ದರೆ ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಬಳಸಿ. ಬ್ಯಾಚ್ ಗಾತ್ರ 32 ರೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ, GPU ಮೆಮೊರಿ ಸ್ಥಿರವಾಗಿದ್ದರೆ ಮಾತ್ರ ಹೆಚ್ಚಿಸಿ ಮತ್ತು ಪ್ರತಿ ರನ್ ನಂತರ ಹಂತದ ಸಮಯ, GPU ಮೆಮೊರಿ ಬಳಕೆ, GPU ಬಳಕೆ, ತಾಪಮಾನ ಮತ್ತು ಮೌಲ್ಯೀಕರಣ ನಿಖರತೆಯನ್ನು ಲಾಗ್ ಮಾಡಿ. CUDA ಮೆಮೊರಿಯಿಂದ ಹೊರಗಿದ್ದರೆ ಕಾಣಿಸಿಕೊಂಡರೆ, ಮಾದರಿಯನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ.
ಅದನ್ನು ಪರೀಕ್ಷಿಸುವುದು ಹೇಗೆ
ಒಂದು ಸಮಂಜಸವಾದ ಪರೀಕ್ಷಾ ಯೋಜನೆ ಹೀಗಿರುತ್ತದೆ:
-
nvidia-smi ಅನ್ನು ರನ್ ಮಾಡಿ ಮತ್ತು GPU ಹೆಸರು, ಡ್ರೈವರ್ ಆವೃತ್ತಿ, ಐಡಲ್ ಮೆಮೊರಿ ಬಳಕೆ ಮತ್ತು ತಾಪಮಾನವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ.
-
ಡೇಟಾಸೆಟ್ ಮತ್ತು ಮಾದರಿ ಕೋಡ್ ಕೆಲಸವನ್ನು ಖಚಿತಪಡಿಸಲು ಒಂದು-ಬ್ಯಾಚ್ CPU ಪರೀಕ್ಷೆಯನ್ನು ರನ್ ಮಾಡಿ.
-
ಕ್ಯೂಡಾದಲ್ಲಿ ಅದೇ ಒಂದು-ಬ್ಯಾಚ್ ಪರೀಕ್ಷೆಯನ್ನು ಚಲಾಯಿಸಿ.
-
32 ಬ್ಯಾಚ್ ಗಾತ್ರದೊಂದಿಗೆ 200 ಹೆಜ್ಜೆಗಳಿಗೆ ತರಬೇತಿ ನೀಡಿ.
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಪುನರಾವರ್ತಿಸಿ.
-
ಮೊದಲ ರನ್ ಸಾಕಷ್ಟು VRAM ಹೆಡ್ರೂಮ್ ಬಿಟ್ಟರೆ ಮಾತ್ರ ಬ್ಯಾಚ್ ಗಾತ್ರ 64 ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ.
-
ಮೌಲ್ಯೀಕರಣ ನಿಖರತೆ, ಸರಾಸರಿ ಹಂತದ ಸಮಯ, ಗರಿಷ್ಠ VRAM ಮತ್ತು GPU ತಾಪಮಾನವನ್ನು ಹೋಲಿಕೆ ಮಾಡಿ.
ಒಳ್ಳೆಯ ಫಲಿತಾಂಶವೆಂದರೆ ಕೇವಲ "ಅದು ತರಬೇತಿ ಪಡೆದದ್ದು" ಅಲ್ಲ. ಒಳ್ಳೆಯ ಫಲಿತಾಂಶವೆಂದರೆ "ಅದು GPU ನಲ್ಲಿ ತರಬೇತಿ ಪಡೆದಿದೆ, ವೇಗ ಸುಧಾರಿಸಿದೆ, ಮೆಮೊರಿ ಸ್ಥಿರವಾಗಿದೆ ಮತ್ತು ಎಲ್ಲವನ್ನೂ ಮರುಸ್ಥಾಪಿಸದೆ ನಾಳೆ ರನ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸಬಹುದು".
ಫಲಿತಾಂಶ
ತರಬೇತಿಯನ್ನು CPU ನಿಂದ ಒಂದೇ NVIDIA GPU ಗೆ ಸ್ಥಳಾಂತರಿಸುವ ಮೊದಲು ಮತ್ತು ನಂತರ ಮೂರು ಸಣ್ಣ 200-ಹಂತದ ಪರೀಕ್ಷಾ ರನ್ಗಳ ಸಮಯವನ್ನು ಆಧರಿಸಿದ ವಿವರಣಾತ್ಮಕ ಫಲಿತಾಂಶ:
CPU-ಮಾತ್ರ ಬೇಸ್ಲೈನ್: ಪ್ರತಿ ತರಬೇತಿ ಹಂತಕ್ಕೆ 3.4 ಸೆಕೆಂಡುಗಳು
FP32 ಜೊತೆಗೆ GPU: ಪ್ರತಿ ತರಬೇತಿ ಹಂತಕ್ಕೆ 0.42 ಸೆಕೆಂಡುಗಳು
ಮಿಶ್ರ ನಿಖರತೆಯೊಂದಿಗೆ GPU: ಪ್ರತಿ ತರಬೇತಿ ಹಂತಕ್ಕೆ 0.28 ಸೆಕೆಂಡುಗಳು
32 ಬ್ಯಾಚ್ ಗಾತ್ರದೊಂದಿಗೆ ಪೀಕ್ GPU ಮೆಮೊರಿ: 5.8 GB
64 ಬ್ಯಾಚ್ ಗಾತ್ರದೊಂದಿಗೆ ಪೀಕ್ GPU ಮೆಮೊರಿ: 10.9 GB
ಬ್ಯಾಚ್ ಗಾತ್ರ 96: CUDA ಮೆಮೊರಿಯಿಂದ ಹೊರಗಿರುವುದರಿಂದ ವಿಫಲವಾಗಿದೆ
ಸ್ಥಿರ ರನ್ಗಳ ಸಮಯದಲ್ಲಿ GPU ಬಳಕೆ: 76% ರಿಂದ 91%
ಸ್ಥಿರ ಓಟಗಳ ಸಮಯದಲ್ಲಿ ತಾಪಮಾನ: 67°C ನಿಂದ 73°C
ಸಣ್ಣ ಪರೀಕ್ಷೆಯ ನಂತರ ದೃಢೀಕರಣ ನಿಖರತೆ: FP32 ನಲ್ಲಿ 82%, ಮಿಶ್ರ ನಿಖರತೆಯಲ್ಲಿ 82.4%
ಈ ಉದಾಹರಣೆಯ ಅಂದಾಜಿನಲ್ಲಿ, FP32 GPU ರನ್ಗೆ ಹೋಲಿಸಿದರೆ ಮಿಶ್ರ ನಿಖರತೆಯು ಹಂತದ ಸಮಯವನ್ನು ಸುಮಾರು 33% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಿತು, ಆದರೆ ಮೌಲ್ಯೀಕರಣ ನಿಖರತೆಯನ್ನು ಸರಿಸುಮಾರು ಒಂದೇ ರೀತಿ ಇರಿಸಿಕೊಂಡಿತು. ತಂಡವು ಪ್ರತಿ ತರಬೇತಿ ಹಂತದ ಸಮಯವನ್ನು ನಿಗದಿಪಡಿಸುವ ಮೂಲಕ, ರನ್ ಸಮಯದಲ್ಲಿ nvidia-smi ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಮತ್ತು ಪ್ರತಿ ಪರೀಕ್ಷೆಯ ನಂತರ ಮೌಲ್ಯೀಕರಣ ನಿಖರತೆಯನ್ನು ಉಳಿಸುವ ಮೂಲಕ ಈ ಸಂಖ್ಯೆಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.
ಏನು ತಪ್ಪಾಗಬಹುದು?
ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ತಪ್ಪು ಎಂದರೆ ಬೇಗನೆ ಸ್ಕೇಲಿಂಗ್ ಮಾಡುವುದು. ಒಂದು ಬ್ಯಾಚ್ನ CUDA ಪರೀಕ್ಷೆಯಲ್ಲಿ ವಿಫಲವಾದರೆ, ಪೂರ್ಣ ತರಬೇತಿಯು ಅದನ್ನು ಮಾಂತ್ರಿಕವಾಗಿ ಸರಿಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಇತರ ಸುಲಭ ಬಲೆಗಳು:
ಬಹು CUDA ಆವೃತ್ತಿಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಯಾವ ಚೌಕಟ್ಟನ್ನು ಬಳಸುತ್ತಿದೆ ಎಂದು ತಿಳಿಯದಿರುವುದು
ಮಾದರಿಯನ್ನು cuda ಗೆ ಸರಿಸಲಾಗುತ್ತಿದೆ ಆದರೆ ಬ್ಯಾಚ್ಗಳನ್ನು CPU ನಲ್ಲಿ ಬಿಡಲಾಗುತ್ತಿದೆ
ಒಮ್ಮೆ ಹೊಂದಿಕೊಳ್ಳುವ ಆದರೆ ಹಲವಾರು ಹಂತಗಳ ನಂತರ ಕ್ರ್ಯಾಶ್ ಆಗುವ ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಆರಿಸುವುದು
ಈಗಾಗಲೇ VRAM ಬಳಸುತ್ತಿರುವ ಇತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತಿದೆ
ಡೇಟಾಲೋಡರ್ ತುಂಬಾ ನಿಧಾನವಾಗಿದ್ದಾಗ GPU ಅನ್ನು ದೂಷಿಸುವುದು
ಒಂದೇ ಡೇಟಾಸೆಟ್, ಬ್ಯಾಚ್ ಗಾತ್ರ ಮತ್ತು ಮಾದರಿಯನ್ನು ಬಳಸದೆ CPU ಮತ್ತು GPU ರನ್ಗಳನ್ನು ಹೋಲಿಸುವುದು
ಮೊದಲ ಕೆಲವು ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು ಸಹ ಮನುಷ್ಯ ಪರಿಶೀಲಿಸಬೇಕು. ಲೇಬಲ್ಗಳು ಗದ್ದಲದಿಂದ ಕೂಡಿದ್ದರೆ, ತರಗತಿಗಳು ಅಸಮತೋಲನದಿಂದ ಕೂಡಿದ್ದರೆ ಅಥವಾ ಮಾದರಿಯು ಉತ್ಪನ್ನ ಪ್ರಕಾರದ ಬದಲಿಗೆ ಹಿನ್ನೆಲೆ ಬಣ್ಣದಂತಹ ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಕಲಿಯುತ್ತಿದ್ದರೆ ವೇಗದ ತರಬೇತಿಗೆ ಹೆಚ್ಚಿನ ಮೌಲ್ಯವಿಲ್ಲ.
ಪ್ರಾಯೋಗಿಕ ತೀರ್ಮಾನ
ವಿಶ್ವಾಸಾರ್ಹ NVIDIA GPU ತರಬೇತಿ ಕಾರ್ಯಪ್ರವಾಹವು ಸಣ್ಣದಾಗಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ: ಚಾಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ, CUDA ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ, ಒಂದು ಬ್ಯಾಚ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ, ನಂತರ ಬ್ಯಾಚ್ ಗಾತ್ರ ಮತ್ತು ತರಬೇತಿ ಅವಧಿಯನ್ನು ಕ್ರಮೇಣ ಅಳೆಯಿರಿ. ವೇಗವಾದ ಸೆಟಪ್ ಕಾಗದದ ಮೇಲೆ ಅತ್ಯಂತ ಪ್ರಭಾವಶಾಲಿ GPU ಹೊಂದಿರುವ ಒಂದಲ್ಲ - ಇದು ತಪ್ಪಿಸಬಹುದಾದ ಆವೃತ್ತಿ, VRAM ಮತ್ತು ಡೇಟಾಲೋಡರ್ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಗಂಟೆಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡದೆ ನಿಮಗೆ ಸ್ಥಿರವಾದ, ಅಳೆಯಬಹುದಾದ ರನ್ಗಳನ್ನು ನೀಡುತ್ತದೆ.
ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು
NVIDIA GPU ನಲ್ಲಿ AI ಮಾದರಿಯನ್ನು ತರಬೇತಿ ಮಾಡುವುದು ಎಂದರೆ ಏನು
NVIDIA GPU ನಲ್ಲಿ ತರಬೇತಿ ಎಂದರೆ ನಿಮ್ಮ ಮಾದರಿ ನಿಯತಾಂಕಗಳು ಮತ್ತು ತರಬೇತಿ ಬ್ಯಾಚ್ಗಳು GPU VRAM ನಲ್ಲಿ ವಾಸಿಸುತ್ತವೆ ಮತ್ತು ಭಾರೀ ಗಣಿತ (ಫಾರ್ವರ್ಡ್ ಪಾಸ್, ಬ್ಯಾಕ್ಪ್ರೊಪ್, ಆಪ್ಟಿಮೈಜರ್ ಹಂತಗಳು) CUDA ಕರ್ನಲ್ಗಳ ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಮಾದರಿ ಮತ್ತು ಟೆನ್ಸರ್ಗಳು cuda, ನಂತರ ಮೆಮೊರಿ, ಬಳಕೆ ಮತ್ತು ತಾಪಮಾನಗಳ ಮೇಲೆ ಕಣ್ಣಿಡುವುದು ಇದರಿಂದ ಥ್ರೋಪುಟ್ ಸ್ಥಿರವಾಗಿರುತ್ತದೆ.
ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಸ್ಥಾಪಿಸುವ ಮೊದಲು NVIDIA GPU ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಹೇಗೆ
nvidia-smi ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ . ಇದು GPU ಹೆಸರು, ಡ್ರೈವರ್ ಆವೃತ್ತಿ, ಪ್ರಸ್ತುತ ಮೆಮೊರಿ ಬಳಕೆ ಮತ್ತು ಯಾವುದೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ತೋರಿಸಬೇಕು. nvidia-smi ವಿಫಲವಾದರೆ, PyTorch/TensorFlow/JAX ಅನ್ನು ಆಫ್ ಮಾಡಿ - ಮೊದಲು ಡ್ರೈವರ್ ಗೋಚರತೆಯನ್ನು ಸರಿಪಡಿಸಿ. ಇದು GPU ತರಬೇತಿಗಾಗಿ "ಓವನ್ ಪ್ಲಗ್ ಇನ್ ಆಗಿದೆಯೇ" ಎಂಬ ಬೇಸ್ಲೈನ್ ಪರಿಶೀಲನೆಯಾಗಿದೆ.
ಸಿಸ್ಟಮ್ CUDA ಮತ್ತು PyTorch ಜೊತೆಗೆ ಬರುವ CUDA ನಡುವೆ ಆಯ್ಕೆ ಮಾಡುವುದು
ಚಲಿಸುವ ಭಾಗಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವುದರಿಂದ ಫ್ರೇಮ್ವರ್ಕ್-ಬಂಡಲ್ CUDA (ಅನೇಕ PyTorch ಚಕ್ರಗಳಂತೆ) ಬಳಸುವುದು ಸಾಮಾನ್ಯ ವಿಧಾನವಾಗಿದೆ - ನಿಮಗೆ ಮುಖ್ಯವಾಗಿ ಹೊಂದಾಣಿಕೆಯ NVIDIA ಡ್ರೈವರ್ ಅಗತ್ಯವಿದೆ. ಪೂರ್ಣ ಸಿಸ್ಟಮ್ CUDA ಟೂಲ್ಕಿಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ (ಕಸ್ಟಮ್ ಬಿಲ್ಡ್ಗಳು, ಕಂಪೈಲಿಂಗ್ ಆಪ್ಗಳು), ಆದರೆ ಇದು ಆವೃತ್ತಿ ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದಿರುವಿಕೆ ಮತ್ತು ಗೊಂದಲಮಯ ರನ್ಟೈಮ್ ದೋಷಗಳಿಗೆ ಹೆಚ್ಚಿನ ಅವಕಾಶಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ.
NVIDIA GPU ಇದ್ದರೂ ತರಬೇತಿ ಏಕೆ ನಿಧಾನವಾಗಬಹುದು
ಸಾಮಾನ್ಯವಾಗಿ, GPU ಇನ್ಪುಟ್ ಪೈಪ್ಲೈನ್ನಿಂದಾಗಿ ಹಸಿದಿರುತ್ತದೆ. ವಿಳಂಬವಾಗುವ ಡೇಟಾಲೋಡರ್ಗಳು, ತರಬೇತಿ ಹಂತದೊಳಗೆ ಭಾರೀ CPU ಪೂರ್ವ-ಸಂಸ್ಕರಣೆ, ಸಣ್ಣ ಬ್ಯಾಚ್ ಗಾತ್ರಗಳು ಅಥವಾ ನಿಧಾನ ಸಂಗ್ರಹಣೆ ಎಲ್ಲವೂ ಶಕ್ತಿಯುತ GPU ಅನ್ನು ಐಡಲ್ ಸ್ಪೇಸ್ ಹೀಟರ್ನಂತೆ ವರ್ತಿಸುವಂತೆ ಮಾಡಬಹುದು. ಡೇಟಾಲೋಡರ್ ಕೆಲಸಗಾರರನ್ನು ಹೆಚ್ಚಿಸುವುದು, ಪಿನ್ ಮಾಡಿದ ಮೆಮೊರಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು, ಪೂರ್ವ-ಪಡೆಯುವಿಕೆಯನ್ನು ಸೇರಿಸುವುದು ಮತ್ತು ಲಾಗಿಂಗ್ ಅನ್ನು ಟ್ರಿಮ್ ಮಾಡುವುದು ಮಾದರಿಯನ್ನು ದೂಷಿಸುವ ಮೊದಲು ಸಾಮಾನ್ಯ ಮೊದಲ ಹೆಜ್ಜೆಗಳಾಗಿವೆ.
NVIDIA GPU ತರಬೇತಿ ಸಮಯದಲ್ಲಿ "CUDA ಮೆಮೊರಿಯಿಂದ ಹೊರಗಿದೆ" ದೋಷಗಳನ್ನು ತಡೆಯುವುದು ಹೇಗೆ
ಹೆಚ್ಚಿನ ಪರಿಹಾರಗಳು VRAM ತಂತ್ರಗಳಾಗಿವೆ: ಬ್ಯಾಚ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ, ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ (FP16/BF16), ಗ್ರೇಡಿಯಂಟ್ ಸಂಗ್ರಹಣೆಯನ್ನು ಬಳಸಿ, ಅನುಕ್ರಮ ಉದ್ದ/ಬೆಳೆ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ ಅಥವಾ ಸಕ್ರಿಯಗೊಳಿಸುವ ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ಅನ್ನು ಬಳಸಿ. ಮೆಮೊರಿಯನ್ನು ಸೇವಿಸುವ ಇತರ GPU ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಸಹ ಪರಿಶೀಲಿಸಿ. ಕೆಲವು ಪ್ರಯೋಗ ಮತ್ತು ದೋಷಗಳು ಸಾಮಾನ್ಯ - ಪ್ರಾಯೋಗಿಕ GPU ತರಬೇತಿಯಲ್ಲಿ VRAM ಬಜೆಟ್ ಒಂದು ಪ್ರಮುಖ ಅಭ್ಯಾಸವಾಗುತ್ತದೆ.
ತರಬೇತಿ ಸ್ಕ್ರಿಪ್ಟ್ ಮುಗಿದ ನಂತರವೂ VRAM ಏಕೆ ಪೂರ್ಣವಾಗಿ ಕಾಣುತ್ತದೆ
ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ವೇಗಕ್ಕಾಗಿ GPU ಮೆಮೊರಿಯನ್ನು ಕ್ಯಾಶ್ ಮಾಡುತ್ತವೆ, ಆದ್ದರಿಂದ ಹಂಚಿಕೆಯಾದ ಮೆಮೊರಿ ಕಡಿಮೆಯಾದಾಗಲೂ ಕಾಯ್ದಿರಿಸಿದ ಮೆಮೊರಿ ಹೆಚ್ಚಾಗಿರುತ್ತದೆ. ಇದು ಸೋರಿಕೆಯನ್ನು ಹೋಲಬಹುದು, ಆದರೆ ಇದು ಆಗಾಗ್ಗೆ ಕ್ಯಾಶಿಂಗ್ ಹಂಚಿಕೆದಾರ ವಿನ್ಯಾಸಗೊಳಿಸಿದಂತೆ ವರ್ತಿಸುತ್ತದೆ. ಪ್ರಾಯೋಗಿಕ ಅಭ್ಯಾಸವೆಂದರೆ ಕಾಲಾನಂತರದಲ್ಲಿ ಮಾದರಿಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದು ಮತ್ತು ಒಂದೇ ಆತಂಕಕಾರಿ ಸ್ನ್ಯಾಪ್ಶಾಟ್ನಲ್ಲಿ ಸ್ಥಿರೀಕರಿಸುವ ಬದಲು “ಹಂಚಿಕೆ vs ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ” ಎಂದು ಹೋಲಿಸುವುದು.
ಒಂದು ಮಾದರಿಯು CPU ನಲ್ಲಿ ಸದ್ದಿಲ್ಲದೆ ತರಬೇತಿ ನೀಡುತ್ತಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಹೇಗೆ
ವಿವೇಕವನ್ನು ಮೊದಲೇ ಪರಿಶೀಲಿಸಿ: torch.cuda.is_available() ಖಚಿತಪಡಿಸಿ True ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ , verify next(model.parameters()).device cuda ಅನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ದೋಷಗಳಿಲ್ಲದೆ ಒಂದೇ ಫಾರ್ವರ್ಡ್ ಪಾಸ್ ಅನ್ನು ರನ್ ಮಾಡಿ. ಕಾರ್ಯಕ್ಷಮತೆ ಅನುಮಾನಾಸ್ಪದವಾಗಿ ನಿಧಾನವಾಗಿದ್ದರೆ, ನಿಮ್ಮ ಬ್ಯಾಚ್ಗಳನ್ನು GPU ಗೆ ಸರಿಸಲಾಗುತ್ತಿದೆ ಎಂದು ಸಹ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಮಾದರಿಯನ್ನು ಸರಿಸುವುದು ಮತ್ತು ಆಕಸ್ಮಿಕವಾಗಿ ಡೇಟಾವನ್ನು ಹಿಂದೆ ಬಿಡುವುದು ಸಾಮಾನ್ಯವಾಗಿದೆ.
ಬಹು-GPU ತರಬೇತಿಗೆ ಸರಳವಾದ ಮಾರ್ಗ
ಡೇಟಾ ಪ್ಯಾರಲಲ್ (DDP-ಶೈಲಿಯ ತರಬೇತಿ) ಸಾಮಾನ್ಯವಾಗಿ ಉತ್ತಮ ಮೊದಲ ಹೆಜ್ಜೆಯಾಗಿದೆ: GPU ಗಳಲ್ಲಿ ಬ್ಯಾಚ್ಗಳನ್ನು ವಿಭಜಿಸುವುದು ಮತ್ತು ಗ್ರೇಡಿಯಂಟ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡುವುದು. ಆಕ್ಸಿಲರೇಟ್ನಂತಹ ಪರಿಕರಗಳು ಪೂರ್ಣ ಪುನಃ ಬರೆಯದೆಯೇ ಬಹು-GPU ಅನ್ನು ಕಡಿಮೆ ನೋವಿನಿಂದ ಕೂಡಿಸಬಹುದು. ಹೆಚ್ಚುವರಿ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ನಿರೀಕ್ಷಿಸಿ - NCCL ಸಂವಹನ, ಇಂಟರ್ಕನೆಕ್ಟ್ ವ್ಯತ್ಯಾಸಗಳು (NVLink vs PCIe), ಮತ್ತು ವರ್ಧಿತ ಡೇಟಾ ಅಡಚಣೆಗಳು - ಆದ್ದರಿಂದ ಘನ ಏಕ-GPU ರನ್ ನಂತರ ಕ್ರಮೇಣ ಸ್ಕೇಲಿಂಗ್ ಉತ್ತಮವಾಗಿ ಹೋಗುತ್ತದೆ.
ಸಮಸ್ಯೆಗಳನ್ನು ಮೊದಲೇ ಪತ್ತೆಹಚ್ಚಲು NVIDIA GPU ತರಬೇತಿಯ ಸಮಯದಲ್ಲಿ ಏನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬೇಕು
GPU ಬಳಕೆ, ಮೆಮೊರಿ ಬಳಕೆ (ಸ್ಥಿರ vs ಕ್ಲೈಂಬಿಂಗ್), ಪವರ್ ಡ್ರಾ ಮತ್ತು ತಾಪಮಾನಗಳನ್ನು ವೀಕ್ಷಿಸಿ - ಥ್ರೊಟ್ಲಿಂಗ್ ನಿಧಾನವಾಗಿ ವೇಗವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು. CPU ಬಳಕೆಯ ಮೇಲೂ ನಿಗಾ ಇರಿಸಿ, ಏಕೆಂದರೆ ಡೇಟಾ ಪೈಪ್ಲೈನ್ ತೊಂದರೆ ಹೆಚ್ಚಾಗಿ ಅಲ್ಲಿ ಮೊದಲು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಬಳಕೆ ಚುರುಕಾಗಿದ್ದರೆ ಅಥವಾ ಕಡಿಮೆಯಾಗಿದ್ದರೆ, I/O ಅಥವಾ ಡೇಟಾಲೋಡರ್ಗಳನ್ನು ಶಂಕಿಸಿ; ಅದು ಹೆಚ್ಚಿದ್ದರೂ ಹಂತದ ಸಮಯ ಇನ್ನೂ ನಿಧಾನವಾಗಿದ್ದರೆ, ಪ್ರೊಫೈಲ್ ಕರ್ನಲ್ಗಳು, ನಿಖರ ಮೋಡ್ ಮತ್ತು ಹಂತದ-ಸಮಯದ ಸ್ಥಗಿತ.
ಉಲ್ಲೇಖಗಳು
-
NVIDIA - NVIDIA nvidia-smi ಡಾಕ್ಸ್ - docs.nvidia.com
-
NVIDIA - NVIDIA ಸಿಸ್ಟಮ್ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಇಂಟರ್ಫೇಸ್ (NVSMI) - developer.nvidia.com
-
NVIDIA - NVIDIA NVLink ಅವಲೋಕನ - nvidia.com
-
ಪೈಟಾರ್ಚ್ - ಪೈಟಾರ್ಚ್ ಪ್ರಾರಂಭಿಸಿ (CUDA ಆಯ್ಕೆ) - pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಪೈಟಾರ್ಚ್ CUDA ಡಾಕ್ಸ್ - docs.pytorch.org
-
ಟೆನ್ಸರ್ ಫ್ಲೋ - ಟೆನ್ಸರ್ ಫ್ಲೋ ಇನ್ಸ್ಟಾಲ್ (ಪಿಪ್) - tensorflow.org
-
JAX - JAX ಕ್ವಿಕ್ಸ್ಟಾರ್ಟ್ - docs.jax.dev
-
ಅಪ್ಪಿಕೊಳ್ಳುವ ಮುಖ - ತರಬೇತುದಾರ ದಾಖಲೆಗಳು - huggingface.co
-
ಲೈಟ್ನಿಂಗ್ AI - ಲೈಟ್ನಿಂಗ್ ಡಾಕ್ಸ್ - lightning.ai
-
ಡೀಪ್ಸ್ಪೀಡ್ - ಜೆರೋ ಡಾಕ್ಸ್ - deepspeed.readthedocs.io
-
ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಂಶೋಧನೆ - ಮೈಕ್ರೋಸಾಫ್ಟ್ ಸಂಶೋಧನೆ: ZeRO/DeepSpeed - microsoft.com
-
ಪೈಟಾರ್ಚ್ ಫೋರಮ್ಗಳು - ಪೈಟಾರ್ಚ್ ಫೋರಮ್: CUDA ನಲ್ಲಿ ಮಾದರಿಯನ್ನು ಪರಿಶೀಲಿಸಿ - discuss.pytorch.org