المجلد الخامس — البنية التحتية ومسرعات التعلم الآلي
دليل شامل لفهم الأجهزة — CPU, GPU, TPU, NPU — ومراكز البيانات، والتكلفة، والبرمجيات الوسيطة للتدريب الموزع
٧ فصول • مقارنات • جداول • أكواد عمليةCPU vs GPU vs TPU vs NPU — مقارنة معمارية شاملة
عندما تبدأ رحلتك في تدريب نماذج التعلم الآلي، يصادفك أول سؤال: هل أحتاج CPU أم GPU أم شيء آخر؟ الإجابة تعتمد على طبيعة المهمة. لفهم ذلك، يجب أن نتعمق في الفروقات المعمارية بين كل معالج.
المقارنة المعمارية
| الخاصية | CPU | GPU | TPU | NPU |
|---|---|---|---|---|
| عدد النوى | 4-24 نوى قوية | ~10K+ نوى صغيرة | واحد MXU ضخم | ~16 نوى عصبية |
| الغرض | عمليات متسلسلة | توازي هائل (SIMT) | ضرب المصفوفات | استدلال منخفض الطاقة |
| الذاكرة | 32-256GB DDR5 | 24-192GB HBM | 32-128GB HBM | مشتركة مع SoC |
| Cache | كبير (L1-L3) | صغير (L1/L2 فقط) | ضئيل جدًا | صغير |
| عرض النطاق | ~50-100 GB/s | ~900-3350 GB/s | ~600-1200 GB/s | ~50-100 GB/s |
| الدقة (Precision) | FP64, FP32 | FP64→FP8, INT8 | BF16, INT8 | INT8, FP16 |
| الاستهلاك (TDP) | ~65-350W | ~250-700W | ~200-450W | ~5-15W |
| التوازي | ضعيف | هائل | مصمم للمصفوفات | متوسط للشبكات |
| التكلفة التقريبية | $500-$5,000 | $10K-$30K+ | ~$4-8/ساعة (GCP) | مضمنة بالجهاز |
🧠 CPU (Central Processing Unit)
المعالج المركزي هو العقل المدبر لأي جهاز. صُمم للعمليات المتسلسلة التي تتطلب زمن استجابة منخفضًا جدًا. يحتوي CPU على عدد قليل من النوى (cores) القوية التي تعمل بترددات عالية (3-5 GHz)، مع ذاكرة كاش ضخمة (L1/L2/L3) لتقليل زمن الوصول إلى الذاكرة. في سياق التعلم الآلي، الـ CPU مسؤول عن التحكم في تدفق البيانات، تحميل البيانات (data loading)، والتنسيق بين الأجهزة الأخرى. لكنه غير مناسب لتدريب النماذج الكبيرة بسبب محدودية التوازي.
🎮 GPU (Graphics Processing Unit)
GPU هو بطل عالم التعلم الآلي. صُمم في الأصل لرسومات الألعاب، لكن اكتُشف أن معمارية SIMT (Single Instruction Multiple Threads) مثالية لضرب المصفوفات وعمليات التعلم العميق. يحتوي GPU على آلاف النوى الصغيرة — في H100 هناك 18,432 CUDA core و576 Tensor Core. كل نوى GPU تعمل معًا على نفس العملية لكن ببيانات مختلفة (SIMD). الميزة الحقيقية هي Tensor Cores — وحدات متخصصة بضرب المصفوفات بدقة منخفضة (FP16, BF16, INT8, FP8) تؤدي عمليات بحجم 4×4 matrix multiply-add في دورة ساعة واحدة.
torch.cuda.stream و DataLoader(pin_memory=True) لتفادي هذه المشكلة.
☁️ TPU (Tensor Processing Unit)
TPU هو ASIC (Application-Specific Integrated Circuit) — شريحة مصممة خصيصًا لمهمة واحدة: ضرب المصفوفات الضخمة. قلب TPU هو MXU (Matrix Multiply Unit)، وهو عبارة عن systolic array بأبعاد 128×128 تقوم بضرب مصفوفتين في دورة ساعة واحدة. MXU يعمل على الـ BF16 بشكل أساسي. الفرق الجوهري: GPU يجب أن يكون متعدد الاستخدامات (ألعاب + ML + render)، بينما TPU مخلص لمهمة واحدة — وهذا يجعله أكثر كفاءة في استهلاك الطاقة لكل عملية FLOP.
📱 NPU (Neural Processing Unit)
NPU هو معالج عصبي مدمج في SoC (System on Chip) للأجهزة المحمولة. أشهرها Apple Neural Engine (منذ iPhone X/A11 Bionic) و Qualcomm Hexagon. NPU مصمم لـ الاستدلال (inference) فقط — تشغيل النماذج المدربة مسبقًا على الجهاز باستهلاك طاقة ضئيل (5-15W). لا يمكن تدريب النماذج على NPU. لكن ميزته: خاص (private) — لا ترسل بيانات المستخدم للسحابة، وزمن استجابة فوري (لأنه محلي). أحدث إصدار من Qualcomm Hexagon (Snapdragon 8 Gen 3) يقدم ~45 TOPS (INT8) — وهو رقم مذهل لشريحة جوال!
الأرقام والمواصفات
المواصفة الأهم: ليست GFLOPS وحدها، بل نسبة GFLOPS إلى عرض النطاق (Ops/Bytes). نموذج Transformer يكون bandwidth-bound للـ inference وcompute-bound للـ training. لهذا تدريب LLM يحتاج GPU/TPU قوي، بينما inference قد يكون أبطأ على GPU فائق بسبب عنق الزجاجة في نقل البيانات!
GPU Architecture — من CUDA إلى Blackwell
GPU الحديثة هي أعجوبة هندسية. لفهمها، يجب أن نبدأ من المعمارية الأساسية لـ NVIDIA CUDA، ثم نتابع التطور عبر الأجيال: Volta → Ampere → Hopper → Blackwell.
CUDA Cores و Tensor Cores و Streaming Multiprocessors
كل GPU من NVIDIA يتكون من مجموعة من Streaming Multiprocessors (SMs). كل SM يحتوي على:
- CUDA Cores: وحدات حسابية للأعداد الصحيحة والفاصلة العائمة (FP32/INT32)
- Tensor Cores: وحدات متخصصة لضرب المصفوفات بدقة منخفضة — FP16, BF16, TF32, FP8, INT8
- Shared Memory: ذاكرة مشتركة داخل SM (تصل إلى 228KB في H100)
- Register File: 65,536+ سجل 32-bit لكل SM
- Warp Scheduler: كل 32 خيطًا (thread) تشكل warp — يقرر أي warp ينفذ بعد ذلك
🧬 كيف يعمل Warp؟
GPU ينفذ التعليمات على مجموعات من 32 thread تسمى warp. كل thread في نفس warp ينفذ نفس التعليمات لكن على بيانات مختلفة (SIMT). إذا كانت threads تحتاج مسارًا مختلفًا (if/else)، يحدث warp divergence — حيث ينفذ كلا المسارين بشكل متسلسل، مما يقلل الأداء إلى النصف. تجنب if-else في kernel functions لضمان أقصى أداء.
🔥 Tensor Cores — سلاح NVIDIA السري
Tensor Cores تؤدي عملية D = A × B + C حيث A و B مصفوفات 4×4 (FP16/BF16/INT8) والناتج FP32. في H100 مع FP8 (بفضل Transformer Engine)، الأداء يقفز إلى 4,000 TFLOPS — أي 6 أضعاف FP16 وأسرع 60 مرة من FP32!
| الدقة | نوع Tensor Core | أداء H100 (TFLOPS) | أداء A100 (TFLOPS) | B200 (TFLOPS) |
|---|---|---|---|---|
| FP64 | — | 34 | 9.7 | 45 |
| FP32 | — | 67 | 19.5 | 90 |
| TF32 | Tensor Core | 989 | 312 | ~2,250 |
| FP16/BF16 | Tensor Core | 1,979 | 624 | ~4,500 |
| FP8 | Tensor Core 2nd Gen | 3,958 | — | 9,000 |
| INT8 | Tensor Core | 3,958 | 1,248 | 9,000 |
خط GPU: من V100 (Volta) إلى B200 (Blackwell)
📅 V100 (Volta, 2017) — الثورة الأولى
أول GPU مع Tensor Cores. غيرت قواعد اللعبة تمامًا. V100 كانت أول من قدم FP16 Tensor Cores مع 125 TFLOPS. كانت بطاقة $10K أصبحت معيار الصناعة لتدريب النماذج حتى 2020. ذاكرة 32GB HBM2 بسعة 900 GB/s.
📅 A100 (Ampere, 2020) — منصة التدريب
A100 ضاعفت كل شيء: 312 TFLOPS (TF32)، 624 TFLOPS (FP16)، ذاكرة 80GB HBM2e بعرض نطاق 2,039 GB/s. قدمت Multi-Instance GPU (MIG) التي تسمح بتقسيم GPU إلى 7 أجزاء مستقلة — مثالية للسحابة لتأجير نصف GPU. AMD بدأت بالمنافسة مع MI250X لكنها بقيت بعيدة.
📅 H100 (Hopper, 2022) — وحش التدريب
H100 هي طفرة هائلة. قدمت Transformer Engine الذي يختار ديناميكيًا أفضل دقة (FP8/FP16) لكل طبقة، مما يضاعف الأداء. قدمت NVLink 4.0 بـ 900 GB/s بين GPUs. الذاكرة: 80GB HBM3 بعرض نطاق 3,350 GB/s. TDP: 700W. السعر: ~$25K-30K.
📅 B200 (Blackwell, 2024) — مستقبل التدريب
B200 تربط شريحتين (die) في حزمة واحدة عبر NVLink. هذا يعطي 80GB × 2 = 160GB HBM3e. الأداء FP8: ~9,000 TFLOPS. تقدم FP4 لأول مرة — مما يضاعف الأداء النظري أكثر. السعر المتوقع: $30K-50K. متوفرة في NVIDIA DGX B200 كـ 8 GPUs.
جدول مقارنة شامل
| المواصفة | V100 | A100 | H100 | B200 |
|---|---|---|---|---|
| السنة | 2017 | 2020 | 2022 | 2024 |
| معمارية | Volta | Ampere | Hopper | Blackwell |
| عملية التصنيع | 12nm | 7nm | 4nm | 3nm (TSMC 4NP) |
| عدد الترانزستور | 21.1B | 54.2B | 80B | 208B |
| SMs | 80 | 108 | 132 | ~168 |
| CUDA Cores | 5,120 | 6,912 | 18,432 | >24,000 |
| Tensor Cores | 640 | 432 (3rd gen) | 576 (4th gen) | >700 (5th gen) |
| FP32 TFLOPS | 15.7 | 19.5 | 67 | 90 |
| FP16/BF16 TFLOPS | 125 | 624 | 1,979 | ~4,500 |
| FP8 TFLOPS | — | — | 3,958 | 9,000 |
| HBM | 32GB HBM2 | 80GB HBM2e | 80GB HBM3 | 160GB HBM3e |
| Bandwidth | 900 GB/s | 2,039 GB/s | 3,350 GB/s | ~4,000+ GB/s |
| NVLink | NVLink 2 (300 GB/s) | NVLink 3 (600 GB/s) | NVLink 4 (900 GB/s) | NVLink 5 (1,800 GB/s) |
| TDP | 300W | 400W | 700W | ~1,000W |
| السعر التقريبي | $10K | $15-20K | $25-30K | $30-50K |
⚔️ المنافسون: AMD MI300X و Intel Gaudi 3
| المواصفة | NVIDIA H100 | AMD MI300X | Intel Gaudi 3 |
|---|---|---|---|
| السنة | 2022 | 2023 | 2024 |
| عملية التصنيع | 4nm | 5nm + 6nm (chiplet) | 5nm |
| الذاكرة | 80GB HBM3 | 192GB HBM3 | ~128GB HBM2e |
| Bandwidth | 3,350 GB/s | 5,200 GB/s | ~3,200 GB/s |
| FP16 TFLOPS | 1,979 | ~1,307 | ~1,850 |
| FP8 TFLOPS | 3,958 | ~2,615 | ~3,700 |
| البرمجيات | CUDA (ناضجة جدًا) | ROCm (قيد التحسين) | SynapseAI (محدودة) |
| التوافق مع PyTorch | ممتاز | جيد | متوسط |
| TDP | 700W | 750W | ~600W |
| السعر | ~$30K | ~$15-20K | ~$12-15K |
| النظام البيئي | ممتاز (CUDA, TensorRT) | متحسن (ROCm, MIOpen) | مبكر (OneAPI) |
Google TPU — الهندسة المخصصة للمحولات
في 2015، أدركت Google أن نماذج Transformer تتطلب قوة حسابية هائلة، وأن GPUs المتاحة لم تكن مثالية لهذه المهمة. بدلاً من انتظار NVIDIA، قررت Google تصميم شريحتها الخاصة — وهكذا وُلد TPU (Tensor Processing Unit).
لماذا TPU؟ — قصة Transformer
عندما نشرت Google ورقة "Attention is All You Need" في 2017، كانت قد اختبرت بالفعل الجيل الأول من TPU داخليًا لمشاريع أخرى مثل ترجمة Google Translate. أدركت Google أن Transformer — الذي يعتمد بالكامل على ضرب المصفوفات الكبيرة — هو التطبيق المثالي لـ TPU. بينما GPUs تصمم لألعاب الفيديو حيث التنوع هو الأساس، TPU هو آلة ضرب مصفوفات خالصة. النتيجة: كفاءة أعلى بـ 2-3x لكل واط مقارنة بـ GPU لنفس المهمة.
أجيال TPU: من v1 إلى v5p
| الجيل | السنة | الاستخدام | الأداء (TFLOPS) | الذاكرة | عدد الشرائح |
|---|---|---|---|---|---|
| TPU v1 | 2015 | Inference فقط | 92 TOPS (INT8) | 8MB ON-chip | ~1,000 |
| TPU v2 | 2017 | تدريب + Inference | 180 TFLOPS (BF16) | 64GB HBM | ~1,000 |
| TPU v3 | 2018 | تدريب + Inference | 420 TFLOPS (BF16) | 128GB HBM | ~1,000 |
| TPU v4 | 2021 | تدريب فقط | ~275 TFLOPS/chip (BF16) | ~96GB HBM | 4,096 (pod) |
| TPU v5e | 2023 | تدريب + Inference | ~400 TFLOPS/chip (BF16) | ~128GB HBM | متغير |
| TPU v5p | 2023 | تدريب فائق | ~459 TFLOPS/chip (BF16) | ~192GB HBM | 8,960 (pod) |
🔬 MXU (Matrix Multiply Unit) — قلب TPU
MXU هو systolic array بأبعاد 128×128 في TPU v2/v3 و 128×256 في v4. يعمل كالتالي:
- تغذية المصفوفة A من اليسار إلى كل عمود من MXU
- تغذية المصفوفة B من الأعلى إلى كل صف من MXU
- كل خلية (PE — Processing Element) تحتوي على مضاعف (multiplier) + مُجمّع (accumulator)
- النتيجة: ضرب مصفوفة 128×128 في دورة ساعة واحدة
للمقارنة: ضرب مصفوفة 128×128 على GPU يحتاج إلى العديد من التعليمات والعديد من الساعات. على MXU يكتمل في دورة ساعة واحدة لكل خطوة (حتى 128 خطوة للنتيجة الكاملة).
مقارنة: TPU vs GPU للتدريب
✅ مزايا TPU
- كفاءة طاقة أعلى بنسبة 30-40%
- MXU يسرع ضرب المصفوفات بشكل كبير
- ربط مذهل عبر Interconnect الخاص بـ Google
- TPU v5p pod يمكنه تدريب نموذج بحجم GPT-4 في أسابيع
- سعر أقل للساعة (عند الاستخدام المكثف)
❌ عيوب TPU
- متاح فقط على Google Cloud (GCP)
- يتطلب JAX أو TensorFlow — لا يدعم PyTorch مباشرة
- يمكن أن يكون أبطأ 2-3x للـ inference الصغير
- مرونة أقل: إذا لم يكن النموذج يعتمد على ضرب المصفوفات، الأداء ينهار
- التصحيح (debugging) أصعب من GPU
من يختار TPU ومن يختار GPU؟
| السيناريو | الاختيار الأفضل | السبب |
|---|---|---|
| تدريب LLaMA 3 (Meta) | GPU — 30,000+ | Meta تمتلك بنية تحتية ضخمة لـ GPU وفريق CUDA متمرس |
| Gemini (Google) | TPU | TPU v5p pod مصمم خصيصًا لمثل هذه النماذج |
| GPT-5 (OpenAI) | GPU | Microsoft Azure يوفر H100/H200 — وOpenAI لا تريد تقييد نفسها بـ GCP |
| شركة ناشئة تبدأ تدريب LLM | GPU | مرونة PyTorch + مجتمع دعم ضخم + سهولة التصحيح |
| مشروع بحثي على JAX | TPU | إذا كنت مرتاحًا لـ JAX، TPU v5e أرخص بـ 30-40% |
| Inference لمشروع صغير | GPU | TPU ليس مثاليًا للـ inference الفردي — GPUs أفضل مع TensorRT |
إذا انتقلت من GPU إلى TPU، يجب تغيير شيفرة PyTorch إلى JAX. TPU يعمل بشكل أفضل مع
jax.jit(static_argnums=...) و jax.vmap للتوازي. المقاربة: نموذجك يحتاج إلى إعادة كتابة للاستفادة القصوى من MXU.
# مثال: تدريب على TPU مع JAX
import jax
import jax.numpy as jnp
from jax.sharding import PartitionSpec, NamedSharding
# تقسيم النموذج عبر الأجهزة
mesh = jax.make_mesh((8, 4), ('data', 'model'))
sharding = NamedSharding(mesh, PartitionSpec('data', 'model'))
@jax.jit
def train_step(params, batch):
def loss_fn(p):
logits = model_forward(p, batch['x'])
return jnp.mean(softmax_cross_entropy(logits, batch['y']))
loss, grads = jax.value_and_grad(loss_fn)(params)
params = jax.tree_map(lambda p, g: p - lr * g, params, grads)
return loss, params
مراكز بيانات التعلم الآلي
امتلاك GPU واحد هو شيء. امتلاك 10,000 GPU هو عالم مختلف تمامًا. تدريب نموذج GPT-4 (1.8T parameters) أو LLaMA 3 (405B) يتطلب بنية تحتية على مستوى مراكز البيانات. هنا تظهر التحديات الحقيقية: ربط هذه الأجهزة، تبريدها، تزويدها بالطاقة، والتعامل مع أعطالها.
ربط الأجهزة داخل العقدة وبين العقد
🔗 NVLink و NVSwitch — الربط داخل العقدة (Node)
في خادوم واحد، توضع 8 GPUs. كيف تتحدث مع بعضها؟ الجواب هو NVLink — ناقل عالي السرعة يصل كل GPU بجيرانه. في H100، NVLink 4.0 يوفر 900 GB/s (اتجاهين) لكل GPU. لكن التحدي: في 8 GPUs، ربط كل GPU مع كل GPU يحتاج إلى 56 وصلة! هنا يأتي NVSwitch — وهو عبارة عن محول (switch) يسمح لأي GPU بالتحدث مع أي GPU آخر بأقصى سرعة. في DGX H100، يوجد 4 × NVSwitch تربط 8 GPUs ببعضها بشبكة كاملة (full bisection bandwidth).
🌐 InfiniBand — ربط العقد (Nodes)
عندما يكون لديك 1,000+ GPU عبر مئات الخوادم، لا يمكن الاعتماد على NVLink (يعمل داخل العقدة فقط). هنا يأتي دور InfiniBand — البروتوكول القياسي لربط العقد في HPC والتعلم الآلي. سرعة NDR InfiniBand: 400-800 Gbps لكل منفذ. في كلاستر كبير (~16,000 GPU)، تُستخدم طوبولوجيا Fat Tree أو Dragonfly+ لتقليل زمن الوصول وزيادة عرض النطاق.
🌐 Ethernet: RoCEv2
بديل InfiniBand هو RoCE (RDMA over Converged Ethernet) — بروتوكول يسمح بـ RDMA (Remote Direct Memory Access) على شبكات Ethernet العادية. أرخص من InfiniBand، لكن أداء أقل بنسبة ~10-20%. مناسب للشركات التي تمتلك بنية تحتية Ethernet ولا تريد الاستثمار في InfiniBand.
| طريقة الربط | المدى | السرعة | زمن الوصول | التكلفة |
|---|---|---|---|---|
| NVLink (H100) | داخل العقدة | 900 GB/s | <1 µs | مضمن |
| InfiniBand NDR | بين العقد | 400-800 Gbps | 1-2 µs | عالية |
| RoCEv2 | بين العقد | 100-400 Gbps | 2-5 µs | متوسطة |
| Ethernet العادي | بين العقد | 10-100 Gbps | 5-50 µs | منخفضة |
التبريد والطاقة
🔥 استهلاك الطاقة — الأرقام المرعبة
كل H100 GPU تستهلك 700W. في خادوم DGX H100 ب 8 GPUs: 8 × 700W + CPUs + ذاكرة + fans = ~7kW لكل خادوم. كلاستر بـ 30,000 GPU يستهلك ~30-35MW مستمرة. لنحسب التكلفة السنوية:
30,000 GPU × 700W × 24h × 365 يوم × $0.10/kWh = ~$18.4M
فقط للكهرباء! هذا قبل التبريد، الصيانة، رواتب المهندسين، واستهلاك المبنى نفسه.
❄️ التبريد: هواء vs ماء
30-40kW لكل رف (rack) مع 4 خوادم. هذا يعني أن كل رف يولّد حرارة تعادل 30-40 مدفأة كهربائية تعمل بكامل طاقتها! تبريد الهواء التقليدي لا يكفي فوق 20kW/rack. الحل: التبريد السائل (Liquid Cooling).
🌬️ تبريد الهواء
- أرخص في التركيب
- صيانة أسهل
- حد أقصى: ~25kW/rack
- يحتاج ممرات باردة/ساخنة
- غبار ومشاكل رطوبة
- أقل كفاءة طاقة
💧 التبريد السائل (Direct-to-Chip)
- تبريد مباشر للـ GPU/CPU
- يدعم حتى 100kW+/rack
- يقلل استهلاك الطاقة 30-40%
- ماء × GPU (بدون كهرباء مباشرة)
- استثمار أولي أعلى
- خطر تسرب (وإن كان نادرًا)
☠️ فشل الأجهزة — حقيقة مرعبة
في كلاستر بـ 1,000 GPU، تتوقع 1-2 GPU تفشل يوميًا. ليس كل GPU — لكن في كلاستر بـ 10,000 GPU، تتوقع 10-20 فشلًا في الأسبوع. لهذا:
- Checkpointing إلزامي: حفظ checkpoint كل 1-2 ساعة. خسارة 4 ساعات تدريب على 30,000 GPU = خسارة $30,000+ في طاقة ضائعة.
- Elastic Training: يجب أن يستمر التدريب حتى عند فشل GPU. DeepSpeed, PyTorch FSDP, و Slurm تدعم هذا.
- Hot-swappable: الخوادم يجب أن تسمح بتغيير GPU دون إيقاف التشغيل.
# مثال: تقرير صحة GPU باستخدام nvidia-smi (تشغيل دوري كل 5 دقائق)
watch -n 300 nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,power.draw --format=csv
# مثال: مراقبة درجة حرارة GPU والتنبيه
while true; do
TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)
if [ "$TEMP" -gt 85 ]; then
echo "ALERT: GPU temperature $TEMP°C exceeds 85°C threshold!"
# إرسال تنبيه (PagerDuty, Slack, Telegram)
fi
sleep 60
done
السحابة vs المحلي — تحليل التكلفة الإجمالية (TCO)
واحد من أكثر القرارات صعوبة في أي مشروع تعلم آلي: هل أستأجر GPU من السحابة أم أشتري الخوادم وأديرها بنفسي؟ الإجابة تعتمد على: حجم التشغيل، مدة التشغيل، نموذج العمل، وفريقك.
أسعار GPU في السحابة
| الموفر | A100 (80GB) | H100 | H200 | Spot / متقطع | تخزين إضافي |
|---|---|---|---|---|---|
| 🏆 RunPod | $1.19/ساعة | $2.69/ساعة | — | -60% | $0.10/GB |
| ⚡ Lambda Labs | $1.34/ساعة | $2.89/ساعة | $3.59/ساعة | -50% | مضمن |
| 🔷 CoreWeave | $1.29/ساعة | $2.72/ساعة | — | -65% | $0.08/GB |
| 🔴 GCP (Google) | $3.48/ساعة | ≈$5.00/ساعة | — | -60% | $0.17/GB |
| 🟠 AWS | $3.20/ساعة | $4.00/ساعة | ≈$6.00 | -55% | $0.23/GB |
| 🔵 Azure | $3.40/ساعة | $4.80/ساعة | ≈$6.31 | -50% | $0.20/GB |
| 🟢 OMC (Oracle) | $2.40/ساعة | $3.60/ساعة | — | -55% | $0.10/GB |
لاحظ الفرق الصارخ بين RunPod ($1.19) و AWS ($3.20) لنفس GPU A100! نفس العتاد، نفس RAM، نفس الأداء — لكن السعر يختلف 3x بسبب الخدمات الإضافية (IAM, VPC, ELB, دعم فني, وفواتير معقدة). منصات مثل RunPod و Lambda تقدم GPU بأسعار تنافسية جدًا، لكن بخدمات أقل. CoreWeave تقدم أفضل توازن بين السعر والأداء.
التكلفة المحلية (On-Premise)
💰 تفصيل تكلفة خادوم 8×H100
📊 مقارنة: سحابة vs محلي — متى تختار ماذا؟
| العامل | السحابة (Cloud) | محلي (On-Premise) |
|---|---|---|
| التكلفة الأولية | $0 — تدفع فقط عند الاستخدام | $250K-5M+ — شراء الخوادم |
| التكلفة الشهرية | $5K-50K — إيجار مستمر | $2K-10K — كهرباء + صيانة |
| وقت التجهيز | دقائق — spin up GPU | 2-6 أشهر — شراء + تركيب |
| المرونة | غير محدود — آلاف GPUs بنقرة | محدود — ما اشتريته هو ما لديك |
| صيانة | الموفر يتولى كل شيء | فريق صيانة داخلي مطلوب |
| أمان البيانات | بياناتك على خادم طرف ثالث | تحكم كامل في البيانات |
| التوسع | لامحدود — ادفع ووسع | يحتاج شراء + تركيب + وقت |
| تكلفة الفشل | يستبدل الموفر الجهاز | أنت مسؤول عن الإصلاح |
📐 معادلة القرار: Cloud vs On-Prem
• أقل من 8,000 محادثة/يوم (inference) — السحابة أرخص
• بحث وتطوير — تحتاج مرونة في تجربة نماذج متعددة
• مشروع موسمي — تدريب لمدة 1-3 أشهر ثم يتوقف
• بداية شركة — ليس لديك رأس مال لشراء أجهزة
📋 متى تختار المحلي؟
• أكثر من 30,000 محادثة/يوم مع نمو سريع — التكلفة الحدية تقل كثيرًا
• تدريب مستمر — 24/7/365 — السحابة ستكلف 2-3x أكثر في 3 سنوات
• بيانات حساسة — HIPAA, حكومية، عسكرية
• فريق بنية تحتية — لديك مهندسين لإدارة الكلاستر
🏢 Hybrid — الأفضل للشركات المتوسطة
الواقع أن معظم الشركات تختار حلًا هجينًا:
- Own cluster للتدريب الأساسي (أقل تكلفة على المدى الطويل)
- Cloud burst عندما تحتاج طاقة إضافية فجأة (مثلاً تدريب نموذج كبير)
- Cloud للـ inference المتغير — حيث يتوسع الطلب وينخفض
• مهندس بنية تحتية ML: الراتب ~$180K-300K/سنويًا (في أمريكا) — هذا راتب موظف واحد يمكنه إدارة كلاستر بـ 50-100 GPU
• كهرباء: $15K-25K/شهرًا لكلاستر 100 GPU (700W × 100 × 24h × 30 يوم × $0.10/kWh = ~$50,400 — مع التبريد يصل إلى $70K)
• تبريد: %30-40 إضافي على فاتورة الكهرباء
البرمجيات الوسيطة للتدريب الموزع
بعد أن حصلت على GPU القوية وأسلاك InfiniBand، تحتاج البرمجيات التي تجعل كل هذه الأجهزة تعمل معًا كفريق واحد. هذه الطبقة من البرمجيات هي ما يسمى Middleware للتدريب الموزع — وهي المسؤولة عن توزيع البيانات، مزامنة التدرجات (gradients)، والتواصل بين GPUs.
مكتبات الاتصال بين GPUs
📡 NCCL — نبض نظام الاتصال
NVIDIA NCCL (NVIDIA Collective Communications Library) هو قلب كل تدريب موزع. هو ليس شيئًا تستخدمه مباشرة — بل كل المكتبات الأخرى (PyTorch DDP, DeepSpeed, Megatron-LM) تبني فوقه. NCCL يوفر عمليات اتصال جماعية (collective operations):
AllReduce— جمع التدرجات من كل GPUs وتوزيع المجموع (الأكثر استخدامًا)AllGather— جمع البيانات الموزعة على كل GPUsReduceScatter— تقليل ثم توزيع — أساسي لـ ZeRO و FSDPBroadcast— إرسال بيانات من GPU واحد للكل
1. كل GPU يحسب تدرجاته (gradients) على دفعته (batch)
2. NCCL يجمع كل التدرجات عبر كل GPUs باستخدام Ring AllReduce أو Tree AllReduce
3. كل GPU يحصل على متوسط التدرجات من كل العينات
4. كل GPU يحدّث أوزانه (weights) — والنتيجة: جميع GPUs لديها نفس الأوزان
Ring AllReduce: أفضل للكلاساتر الكبيرة. كل GPU يتحدث مع جارين فقط، وتمر البيانات في حلقة (ring). زمن الاتصال مستقل عن عدد GPUs نظريًا!
🚀 DeepSpeed — Microsoft ZeRO, MoE, Flash Attention
DeepSpeed من Microsoft هي أشهر مكتبة للتدريب الموزع على نطاق واسع. أبرز ميزاتها:
- ZeRO (Zero Redundancy Optimizer): يقسم حالة المحسن (optimizer states)، التدرجات، والأوزان بين GPUs — بدلاً من تخزين نسخة كاملة على كل GPU. يوفر 8x ذاكرة!
- ZeRO-1: تقسيم optimizer states فقط — يوفر 4x ذاكرة
- ZeRO-2: تقسيم التدرجات أيضًا — يوفر 8x ذاكرة
- ZeRO-3: تقسيم الأوزان أيضًا — يمكن تدريب نماذج أكبر من ذاكرة GPU الواحد
- ZeRO-Offload: ينقل جزءًا من الذاكرة إلى CPU RAM — لنماذج ضخمة على GPU محدود
- MoE (Mixture of Experts): تدريب نماذج بـ 1T+ parameters باستخدام خبراء متفرقين
- Flash Attention kernel fusion: دمج عمليات الانتباه لتقليل زمن الوصول
# DeepSpeed ZeRO-3 — تدريب نموذج 70B على 8 GPU
import deepspeed
ds_config = {
"train_batch_size": 256,
"gradient_accumulation_steps": 4,
"zero_optimization": {
"stage": 3, # ZeRO-3
"offload_param": {
"device": "cpu" # وزع الأوزان على CPU إذا كانت 80GB غير كافية
},
"offload_optimizer": {
"device": "cpu"
}
},
"fp16": {
"enabled": True,
"auto_cast": True
},
"flops_profiler": {
"enabled": True
}
}
model_engine, optimizer, trainloader, _ = deepspeed.initialize(
model=model,
model_parameters=model.parameters(),
config=ds_config
)
📐 Megatron-LM — 3D Parallelism من NVIDIA
Megatron-LM يوفر ثلاثة أنواع من التوازي:
- Tensor Parallelism (TP): يقسم طبقة Transformer الواحدة عبر GPUs
كل GPU يحسب جزءًا من الانتباه أو MLP. يتطلب اتصالًا سريعًا (NVLink داخل العقدة). - Pipeline Parallelism (PP): يقسم طبقات النموذج عبر GPUs
GPU 1: layers 1-10, GPU 2: layers 11-20, إلخ. يقلل زمن الانتظار بين GPUs. - Data Parallelism (DP): نسخ النموذج على كل GPU مع بيانات مختلفة
التقليدي — كل GPU لديه نسخة كاملة من النموذج لكن بيانات مختلفة.
المزيج 3D Parallelism يوزع TP داخل العقدة (NVLink)، PP بين مجموعات (InfiniBand)، وDP بين كل شيء. هذا ما استخدمته NVIDIA لتدريب GPT-3 و Megatron-Turing NLG.
🔄 PyTorch FSDP — سهولة ZeRO
PyTorch FSDP (Fully Sharded Data Parallelism) هو تطبيق ZeRO-3 داخل PyTorch الأصلي. أسهل استخدامًا من DeepSpeed ZeRO لكن بنفس المبدأ:
from torch.distributed.fsdp import (
FullyShardedDataParallel as FSDP,
MixedPrecision,
ShardingStrategy,
)
torch.cuda.set_device(rank)
model = FSDP(
model,
sharding_strategy=ShardingStrategy.FULL_SHARD, # ZeRO-3
mixed_precision=MixedPrecision(
param_dtype=torch.bfloat16,
reduce_dtype=torch.bfloat16,
buffer_dtype=torch.bfloat16
),
device_id=rank,
)
🌐 Horovod — البديل المفتوح المصدر
طورته Uber في 2017 كبديل مفتوح المصدر لـ NCCL. يستخدم Ring AllReduce بشكل أصل. ورغم أن PyTorch DDP و DeepSpeed أصبحا أكثر شيوعًا، Horovod لا يزال مستخدمًا في بعض الشركات لأنه يعمل مع أي إطار (TensorFlow, PyTorch, MXNet).
إدارة الكلاستر — Kubernetes, Ray, SLURM, والحاويات
| الأداة | الاستخدام | المميزات | العيوب |
|---|---|---|---|
| Kubernetes + Kueue | إدارة الحاويات وجدولة GPU | مرونة عالية، auto-scaling، مجتمع ضخم | تعقيد كبير، overhead ~10% على GPU |
| Ray | جدولة مهام ML موزعة | سهل، يوفر Ray Train, Ray Serve, RLlib | أقل نضجًا من K8s للـ production |
| SLURM | جدولة كلاسيكية لـ HPC | بسيط، فعال، مستقر جدًا | لا يدخل الحاويات، أقل مرونة |
| Docker + Enroot | حاويات بيئة التدريب | عزل تام، تكرارية (reproducibility) | حجم كبير، يحتاج إدارة صور |
| Singularity | حاويات HPC | آمن، بدون root، متوافق مع SLURM | أقل شهرة من Docker |
# مثال: إرسال مهمة تدريب على SLURM مع 8 GPU
#!/bin/bash
#SBATCH --job-name=train-llama
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=8
#SBATCH --gres=gpu:8
#SBATCH --time=48:00:00
#SBATCH --output=/checkpoint/jobs/%j.log
export MASTER_ADDR=$(scontrol show hostnames $SLURM_JOB_NODELIST | head -n 1)
export MASTER_PORT=29500
srun torchrun \
--nnodes=$SLURM_NNODES \
--nproc_per_node=8 \
--rdzv_id=$SLURM_JOB_ID \
--rdzv_backend=c10d \
--rdzv_endpoint=$MASTER_ADDR:$MASTER_PORT \
train.py --config configs/llama-70b.yaml
• فريق صغير (<5 أشخاص): استخدم Ray + PyTorch FSDP — أقل تعقيدًا
• فريق متوسط (5-20): استخدم DeepSpeed ZeRO-3 + SLURM — توازن بين البساطة والقوة
• فريق كبير (>20) / إنتاج: استخدم Kubernetes + Kueue + DeepSpeed/Megatron — أقصى مرونة وتحكم
الاتجاهات المستقبلية
قانون مور يتباطأ، لكن الطلب على قدرة الحوسبة للتعلم الآلي ينمو بمعدل 4x سنويًا. هذه الفجوة تدفع الابتكار في عدة اتجاهات ثورية.
🔦 الحوسبة الضوئية (Optical Computing / Photonics)
شركات مثل Lightmatter و Lightelligence تطور شرائح تستخدم الضوء بدلاً من الكهرباء لإجراء العمليات الحسابية. الفكرة الأساسية: ضرب المصفوفات يمكن تنفيذه بسرعة الضوء عبر Mach-Zehnder interferometers التي تعمل بتداخل الموجات الضوئية. المزايا المتوقعة:
- سرعة هائلة: النتائج تنتقل بسرعة الضوء — زمن استجابة <1 ns
- استهلاك طاقة أقل: 10-100x أقل من الإلكترونيات التقليدية لكل عملية
- توازي طبيعي: أطوال موجية مختلفة (WDM) يمكنها حمل عمليات مختلفة
التحدي: لا تزال هذه التكنولوجيا في مرحلة البحث والتطوير — Lightmatter's Envise متاح حاليًا لكن بكميات محدودة جدًا.
🔮 Analog AI Chips — Mythic, IBM
بدلاً من العمليات الرقمية (0 و 1)، تستخدم Analog AI التيار والجهد لإجراء العمليات الحسابية. المفهوم الأساسي هو Computing-in-Memory (CiM) أو Processing-in-Memory (PIM): بدلاً من نقل البيانات بين الذاكرة والمعالج (Von Neumann bottleneck)، تجري العمليات الحسابية داخل خلايا الذاكرة نفسها عبر RRAM (Resistive RAM).
ميزتها: ضرب مصفوفات كامل داخل مصفوفة الذاكرة دون أي نقل بيانات خارجي. هذا يقلل استهلاك الطاقة 100x مقارنة بـ GPU. تحدياتها: الدقة محدودة (حاليًا INT4-INT8)، والأخطاء التناظرية (noise) تحتاج تعويضًا.
🔳 Cerebras Wafer-Scale Engine (WSE-3)
Cerebras تفعل شيئًا جنونيًا: بدلاً من تقطيع رقاقة السيليكون (wafer) إلى شرائح صغيرة (dies)، تترك الرقاقة كاملة — بحجم طبق بيتزا — وتصنع منها معالجًا واحدًا عملاقًا. WSE-3 يحتوي على:
ميزة WSE-3: كل النوى على شريحة واحدة — لا حاجة لـ NVLink أو InfiniBand للتواصل داخل المعالج. عيبه: التبريد صعب جدًا (TDP ~15kW لشريحة واحدة!)، والتكلفة هائلة.
⚡ Groq LPU — Language Processing Unit
Groq (تأسست من مهندسين سابقين في Google TPU team) تبني LPU (Language Processing Unit). فلسفتها: بدلاً من تسريع ضرب المصفوفات (TPU) أو التوازي العام (GPU)، تركز LPU على تقليل زمن الاستجابة (latency) للـ LLM inference.
تستخدم LPU معمارية Temporal Processor — حيث تكون البيانات محلية دائمًا ولا تتنقل بين الذاكرة والمعالج. النتيجة: أسرع LLM inference في العالم — Llama 2 70B يشتغل بسرعة 1,200 tokens/second على LPU (مقابل ~200 tokens/s على H100). لكن: البرمجة عليها تحتاج SDK خاص (لا CUDA ولا PyTorch مباشر).
🏭 عمليات التصنيع: 3nm, 2nm ومستقبل الترانزستورات
TSMC و Samsung يتسابقان نحو عقد أصغر:
| العقدة | الشركة | الحالة | الكثافة | توفير الطاقة |
|---|---|---|---|---|
| 3nm (N3/N3E) | TSMC | قيد الإنتاج — A17 Pro, B200 | ~200M ترانزستور/mm² | -35% vs 5nm |
| 2nm (N2) | TSMC | 2025 الإنتاج المتوقع | ~300M ترانزستور/mm² | -25-30% vs 3nm |
| SF3 (3nm) | Samsung | قيد الإنتاج | ~170M ترانزستور/mm² | -30% vs 5nm |
| SF2 (2nm) | Samsung | 2025-2026 متوقع | ~250M ترانزستور/mm² | -25% vs 3nm |
| Intel 20A (2nm) | Intel | 2025 متوقع | ~230M ترانزستور/mm² | RibbonFET + PowerVia |
🧩 ASICs المخصصة — كل شركة تبني شريحتها الخاصة
بعد نجاح Google TPU، كل شركة كبرى تبني شريحتها الخاصة:
| الشركة | الشريحة | الاستخدام | الحالة |
|---|---|---|---|
| Amazon (AWS) | Trainium v2 | تدريب النماذج على AWS | قيد الإنتاج — تستخدمه Anthropic |
| Meta | MTIA v2 | Inference للـ recommendation | قيد الإنتاج — يحل محل GPU للـ recommendation |
| Microsoft | Maia 100 | تدريب + Inference لـ Azure | 2024 — أول شريحة من MS لوحدها |
| Apple | Neural Engine (ANE) | On-device inference | قيد الإنتاج منذ iPhone X — 35 TOPS في M4 |
| Samsung | Gauss NPU | On-device AI للجوال | Galaxy S24 — يستخدم في Galaxy AI |
| OpenAI | مشروع سري (؟) | غير معلن | إشاعات — Altman يبحث عن مستثمرين لـ $7T في AI chips |
🪐 Quantum ML — البدايات فقط
الحوسبة الكمومية للتعلم الآلي ما زالت في مراحلها المبكرة جدًا. الشركات مثل IBM و Google (Sycamore/Willow) تحاول استخدام الكيوبتات (qubits) لتحسين بعض خوارزميات ML مثل SVM و K-Means. لكن التحديات هائلة:
- الكيوبتات حساسة جدًا للضوضاء — تحتاج تبريدًا إلى 15 millikelvin
- عدد الكيوبتات محدود (<1,000 qubit مفيدة حاليًا مقابل ملايين المطلوبة)
- تصحيح الأخطاء الكمومية (error correction) يأكل معظم الكيوبتات
• الحوسبة الضوئية و Analog AI: 3-5 سنوات قبل أن تصبح تجارية
• Cerebras/Groq: تستخدم الآن لكن في أسواق محددة (latency-sensitive inference)
• ASICs المخصصة: كل شركة كبرى سيكون لديها شريحة AI خاصة بحلول 2026-2027
• الحوسبة الكمومية للـ ML: 10-15 سنة على الأقل قبل أي تأثير عملي
الآن: GPU لا يزال الملك. لكن 5 سنوات من الآن، سيكون لدينا خليط من GPU + TPU + ASICs + Optical.
لقد غطينا البنية التحتية للتعلم الآلي من الأجهزة الصغيرة إلى مراكز البيانات العملاقة.
تذكر دائمًا: العتاد الجيد يسرعك، لكن الفهم العميق هو ما يبقيك متقدمًا.
المجلد التالي: سلسلة التعلم الآلي (MLOps) والنشر في الإنتاج