# بناء "Lawyer GPT" لمدوّل الخاص بك - الجزء 2: GPu Enstup و CUDA في C#

<!--category-- AI, LLM, CUDA, C#, GPU, AI-Article, mostlylucid.blogllm -->
<datetime class="hidden">2025-11-12T22:45</datetime>

> تحذير: هذه هي "الوظائف" التي "تُعنى".

ومن المرجح أن الكثير مما هو أسفل لن يعمل؛ أنا توليد هذه كما كيف إلى ل ME ومن ثم القيام بجميع الخطوات والحصول على تطبيق العينة العمل... كنت قد تم التسلل ورأيت لهم! أنها سوف تكون على الأرجح جاهزة منتصف كانون الأول/ديسمبر.

<img src="https://media1.tenor.com/m/_rQc7PIEqwQAAAAd/cat-hello-cat-peek.gif" height="300px" />
## أولاً

مرحباً بكم في الجزء الثاني![داخل](/blog/building-a-lawyer-gpt-for-your-blog-part1)الجزء الأول

> ، عرضنا رؤية لبناء مساعد الكتابة الذي يستخدم مدونتك كقاعدة معرفية - مثل كيف يستخدم المحامون LLLS المدربين على قانون السوابق القضائية لصياغة الوثائق.

**الآن حان الوقت لنجعل أيدينا تتسخ مع الأساس: التأكد من أن وحدة الـ GPU الخاصة بك جاهزة لأعباء العمل الخاصة بـ AI.**ملاحظة: هذا جزء من تجاربي مع AI (مساعدة في الصياغة) + تحريري الخاص.

نفس الصوت، نفس العمليّة، مجرد أصابع أسرع.[عن أجهزتي](https://developer.nvidia.com/cuda-toolkit): أنا استخدم NVIDIA RTX A4000 (RAM) ، AMD RAZEN 9 9950X ، و 96GP نزع السلاح والتسريح وإعادة الإدماج.[لكنك لست بحاجة لهذا!](https://developer.nvidia.com/cudnn)كما هو مشمول في الجزء 1، يمكنك استخدام أي NVIDIA GUPU مع 8GB+ VRAM، أو حتى تشغيل CPU-فقط (أبطأ ولكن وظيفية).

[TOC]

## يركز هذا الجزء على إعداد GPU، ولكن سوف أشير إلى بدائل CCPU فقط حيثما كان ذلك مناسبا.

هذا الجزء قد يبدو أساسياً إذا كنت تعرف مسبقاً

### كندا

```mermaid
graph LR
    A[AI Workload] --> B{Type?}
    B -->|Matrix Operations| C[GPU: 100x+ faster]
    B -->|Sequential Logic| D[CPU: Better]

    C --> E[Embedding Generation]
    C --> F[LLM Inference]
    C --> G[Vector Search]

    D --> H[Application Logic]
    D --> I[File I/O]

    class C gpu
    class E,F,G aiTasks

    classDef gpu stroke:#333,stroke-width:4px
    classDef aiTasks stroke:#333
```

**لكن ثق بي - لقد أهدرت ساعات لا حصر لها -**:

1. **قُدْس**)أ( المنشآت الصناعية.
2. **سنفعل هذا الحق من البداية.**لماذا مسائل التراكم
3. **قبل أن نغوص في التركيب، دعونا نفهم لماذا نحتاج إلى التسارع GPU على الإطلاق.**المعالج المعالج vs G المعالج لـ المكفف جاري العمل التحميلات
4. **لماذا تهيمن النزوات لـ A**المراسلة

**- المعالجات لديها الآلاف من اللينات ضد العشرات من المعالجين**تشغيلات في المرحلة

- **- AI هي في الغالب مصفوفة الرياضيات، التي تتفوق على GPUs في**النسيان
- **- نقل المعالجات للبيانات بشكل أسرع بكثير**

- تسريع العمليات الخاصة بكل عملية على حدة

**المثال الحقيقي في العالم**مُوجّهة المُدخلات لمُدوّنة:

- **وحدة معالجة (الززن 9 9950 9 x x)**حوالي 5 ثوان لكل وظيفة
- **(بآلاف الغرام)**حوالي 0.3 ثانية لكل وظيفة
- **هذا أسرع بـ16x، وهو يُجمع عند معالجة المئات من الوظائف!**أداء الأداء على وحدات أخرى
- (تقريبا):

## طراز RTX 4090

(24GB): الأسرع، حوالي 0.2 في كل وظيفة

### طراز RTX 3060

(12GB): حوالي 0.5 0.5 لكل وظيفة

- **GTX GTX 1070 Ti**(ج غ غ غ ): حوالي 0.8 في المائة لكل وظيفة
- **ما زال أسرع بكثير من المعالج!**تَفْكِكَ
- **قبل تركيب أي شيء، دعونا نفهم ما نعمل معه.**مجموعتي: NVIDIA RTX A4000
- **هذا هو بلدي محدد GPU - بطاقة عمل مهنية مع:**السادسة عشرة

### - كافية لـ 7B-13B نماذج البارامترات

6144 نواة كوبا

- طاقة تجهيز متوازية
|-----|------|----------------|----------|
25% نواياً مُنْسِب المُنْسِر
- تسريع تنفيذ العمليات
(أ) تقييم الكفاءة 8-6 8
- مهمة للتوافق
مور مور
هنا ما يمكن لمختلف الـ GPUs التعامل معها:

### نموذج الحد الأقصى للحجم الجيد لـ

RTX 4090 o 24GB o 13B-30B o مبالغة في إرهاق هذا المشروع**RTX 4070 Ti TM TM TM TM RTX 4070 TM TM T TM TM 12GG ° 7B-13B اختيار ممتاز TM**

**RTX 3060 o 12GB o 7B**RTX 4060 RTX 4060 TM TM TM TM TM TM RTX 4060 TI o 16GB ° 7B-13B

**A4000 (منجم) □ 16GB □ 7B-13B □ وحدة عمل GPU**:

- **GTX 1070 Ti u 8GB o 7B (ثابت)**ماذا عن إنتل / AMD المعالجات؟
- **قد تكون سمعت عن Intel Corre Organia أو AMD Rizen رقائق AI مع وحدات المعالجة المتكاملة.**هل يمكنك استخدام هذه بدلا من NVIDIA؟
- **قصير قصير**ليس بعد، ولكن ربما في 2024-2025!
- **أولا -**لا شيودا

**المعالجات لا تدعم CUDA، التي تستخدم هذه المواد**:

- دعم Limit.net
- : OONNNX دعم NUP في وقت التشغيل هو تجريبي[باء - النموذج](https://onnxruntime.ai/docs/execution-providers/DirectML-ExecutionProvider.html)∗ معظم نماذج نموذج النموذج العالمي للإدارة
- دعم المشروع المباشر

# لا تزال تنضج من أجل LLLs**إذا كان لديك وحدة معالجة مجهزة**(يعمل كل شيء، فقط أبطأ)

### مراقبة:

وقت التشغيل المباشر

```bash
# PowerShell
wmic path win32_VideoController get name
```

معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات معلومات

```
Name
NVIDIA RTX A4000
```

وستلاحظ الأجزاء المقبلة عندما يتحسن الدعم المقدم من وحدة التنفيذ الوطنية

### تركز هذه السلسلة على ما يلي:

سادساً - فلسفة نفيدية

```mermaid
graph TB
    A[Your C# Application] --> B[ONNX Runtime / LLamaSharp]
    B --> C[CUDA Toolkit]
    C --> D[cuDNN Libraries]
    D --> E[NVIDIA Driver]
    E --> F[GPU Hardware]

    G[TensorRT] -.Optional.-> D

    class A,F endpoints
    class C,D,E install

    classDef endpoints stroke:#333,stroke-width:4px
    classDef install stroke:#333,stroke-width:2px

    subgraph "What We'll Install"
    C
    D
    E
    end
```

**لأنها ناضجة ومدعمة جيداً في شبكة الإنترنت، لكن المفاهيم ستترجم إلى وحدات المعالجة الوطنية بمجرد أن يتطور النظام البيئي!**:

- **كش صالح**أولاً، تحقق من أن ويندوز ترى المعالج الخاص بك:
- **يجب أن ترى شيئاً مثل:**أو استخدام أو استخدام NVIDIA التحكم فريق مراقبة NVIDIA معلومات نظام معلومات أي لسان العرض.
- **أولاً - لمحة عامة**هذه هي الطريقة التي يعمل بها كومة البرمجيات:
- ****سائق نزيديا
- **- الاتصال على مستوى منخفض**مجموعة أدوات

## - الأرقام القياسية لبرمجة المعالجة الجنسانية

قُدْس

```mermaid
graph LR
    A[1. NVIDIA Driver] --> B[2. CUDA Toolkit]
    B --> C[3. cuDNN]
    C --> D[4. Verify Install]
    D --> E[5. Test from C#]

    class A,B,C,D,E steps

    classDef steps stroke:#333,stroke-width:2px
```

## - مكتبة الشبكة الأرضية العميقة (النوافذ المُحسَّنة)

### OONNX وقت العرض / LAMSharp

- أُطر العمل الرفيعة المستوى

```bash
nvidia-smi
```

تطبيق

```
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 546.33       Driver Version: 546.33       CUDA Version: 12.3    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA RTX A4000   WDDM  | 00000000:01:00.0 Off |                  Off |
| 41%   32C    P8    10W / 140W |    345MiB / 16376MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
```

**- C# رمز الرمز**:

- `Driver Version`(أ)
- `CUDA Version`هذا هو الترتيب الذي سنرتب به الأشياء
- `Memory-Usage`الخطوة 1: سائق نفيدية

### 

جاري فتح سُسل:`nvidia-smi`يجب أن ترى مخرجات مثل:

1. المعلومات الأساسية[ينبغي أن تكون 545.xxx أو جديدة](https://www.nvidia.com/Download/index.aspx)

2. هذه نسخة MAX Cudda المدعومة، وليس ما تم تثبيته
   
   - : مستخدم حالياً / المجموع VRAM**م**
   - في حالة**لا يعمل أو سائقك قديم**
   - إلى:**NVIDIA**
   - (ب) ما يلي:**نوع المنتج:**RTX/Quadro
   - سلسلة المنتجات:**سلسلة سلاسل RTX RTX Axxxxx**المنتج:

3. طراز RTXX A.4000

4. نظام التشغيل:`nvidia-smi`

## 11

(أو نسختك)

### 

**سائق سائق**(أكثر استقراراً من مُنتِز أكثر من مُنتِز أكثر استقراراً من المُفكِز[التثبيت وإعادة التشغيل](https://developer.nvidia.com/cuda-toolkit)(د) التصديق مرة واحدة على

- **الخطوة 2: مجموعة أدوات**وتوفّر اللجنة المعنية بمكافحة المخدرات الوصلة البينية البرمجية لتسارع التسارع GPU.
- ****1 ف-5، 1 ف-3، 1 خ م، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)
- **نحن بحاجة إلى**كندا

### 12x للنماذج الحديثة.

1. تحديداً:[كدودا ١٢,١+](https://developer.nvidia.com/cuda-toolkit-archive)
2. - التوازن الجيد للتوافق والسمات (في وقت الكتابة)**&ك**- التحقق من التوافق مع مكتباتك
3. ١١ )خ( ١١**- الحاجة إلى نماذج جديدة للنماذج**
4. & لا يجري

### إلى:

أرشيف مجموعة أدوات اتفاقية الأمم المتحدة

```
Installation Type: Custom (Advanced)

Select Components:
✅ CUDA Toolkit
✅ CUDA Documentation
✅ CUDA Samples
✅ CUDA Visual Studio Integration
❌ GeForce Experience (not needed)
❌ NVIDIA Driver (already installed)
```

**1 ف-5، 1 ف-4، 1 ف-3، 1 خ م، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م و، 1 م أ، 1**مجموعة أدوات اتفاقية الأمم المتحدة

### )أو ٢١,٣,٣,١ إذا كنت مغامرا(

&::

```
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1
```

نوافذ □ x86_64 □ 11 □ Exe (محلية)

### تنـزّل (يُنزِلُ)

الملحقات

**تشغيل التشغيل المُقَمِّل.**:

```powershell
$env:CUDA_PATH
# Should show: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1

$env:PATH -split ';' | Select-String CUDA
# Should show CUDA bin and libnvvp paths
```

**إذا كان قد قام بما يلي:**:

1. لِمَ تُشَرِعُ؟**لا نريد أن نقلل من مستوى سائقنا أو أن نقوم بتثبيت برامج المسابقات**:
   
   - التشويث`This PC`%s: %s: %s: %s: %s: %s: %s: %s: %s

2. لكن لاحظوا هذا - سنحتاجه للمتغيرات البيئية!****عادة ما يقوم التثبيت بضبط هذه، ولكن التحقق:
   
   - `CUDA_PATH` = `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1`
   - `CUDA_PATH_V12_1` = `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1`

3. كِش كِش تحرير`Path`IF مفقود، اضض
   
   ```
   C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
   C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp
   ```

4. **& علِم**

### دال - يمين

```powershell
# Check CUDA compiler
nvcc --version

# Should output:
# nvcc: NVIDIA (R) Cuda compiler driver
# Copyright (c) 2005-2023 NVIDIA Corporation
# Built on Tue_Feb__7_19:32:13_Pacific_Standard_Time_2023
# Cuda compilation tools, release 12.1, V12.1.66
```

```powershell
# Check path resolves
where.exe nvcc
# Should show: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\nvcc.exe
```

## ● خصائص / إعدادات النظام المتقدم / متغيرات البيئة

الموارد تحت

### 

**مضافاً إليه/مضافاً إليه ما يلي:**: [داخل](https://developer.nvidia.com/cudnn)(ب) ضمان وجود هذه العناصر على النحو التالي:

أعد تشغيل الطرفية**التغييرات التي تدخل حيز النفاذ**حدّث**الخطوة 3: الكدونة (مكتبة الشبكة الشبكية العميقة للكودا)**وتوفر شبكة QuDNN تنفيذ عمليات التعلم العميق على النحو الأمثل.

### (بآلاف

1. 1 ف-5، 1 ف-3، 1 خ م، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)[قُدْس](https://developer.nvidia.com/rdp/cudnn-archive)
2. النسخة يجب أن تطابق نسخة CUDA!
3. (أ)**كودا 12x**
4. ، نحن بحاجة**مربعة ٨,٩,٩ +**
5. 12x (في وقت كتابة هذا التقرير، 8.9.7 أو ما بعد ذلك)

### نُززز

إلى:

**مربع**ستحتاج إلى حساب مطور NVIDIA (حر)

```
cudnn-windows-x86_64-8.9.7.29_cuda12-archive\
    bin\
        cudnn64_8.dll
        cudnn_adv_infer64_8.dll
        cudnn_adv_train64_8.dll
        ... (more DLLs)
    include\
        cudnn.h
        ... (header files)
    lib\
        x64\
            cudnn.lib
            ... (lib files)
```

**المصدر:**:

```powershell
# Assuming you extracted to Downloads and CUDA is in default location
# Run PowerShell as Administrator

$cudnnPath = "$env:USERPROFILE\Downloads\cudnn-windows-x86_64-8.9.7.29_cuda12-archive"
$cudaPath = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1"

# Copy DLLs
Copy-Item "$cudnnPath\bin\*.dll" -Destination "$cudaPath\bin\"

# Copy headers
Copy-Item "$cudnnPath\include\*.h" -Destination "$cudaPath\include\"

# Copy libs
Copy-Item "$cudnnPath\lib\x64\*.lib" -Destination "$cudaPath\lib\x64\"
```

**(الخامس من كانون الأول/ديسمبر، 2023)، لـ CUDA 12x**:

1. (ب) ما يلي:`bin\`ملصق محلي محلي لـ النوافذ (زيب)`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\`
2. (ينزن)`include\`استورد و استق@ QDN`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include\`
3. Qudnn عبارة عن مجموعة من الملفات التي تنسخها إلى تثبيت CUDA الخاص بك.`lib\x64\`استخلص الـ الـ ZIP`C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64\`

### سترى:

```powershell
# Check DLLs exist
Test-Path "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\cudnn64_8.dll"
# Should return: True

# List all cuDNN DLLs
Get-ChildItem "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\cudnn*.dll"
```

## انسخ إلىQDDA

أو تفعل ذلك يدوياً

### نسخ كل الملفات من

```powershell
nvidia-smi
```

ثالثاً -

### نسخ كل الملفات من

```powershell
nvcc --version
```

ثالثاً -

### نسخ كل الملفات من

```powershell
# All these should return paths
$env:CUDA_PATH
$env:CUDA_PATH_V12_1

# Check PATH includes CUDA bin
$env:PATH -split ';' | Select-String CUDA
```

### ثالثاً -

يجري التحقق من تثبيتها

**الخطوة 4: التحقق الكامل**:

```powershell
cd "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v12.1"
```

**لنتأكد من أن كل شيء يعمل معاً**:

```powershell
cd "1_Utilities\deviceQuery"
```

**&**يجب أن تظهر GPU الخاص بك مع عدم وجود أخطاء.

```powershell
# If you have VS 2022
"C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" deviceQuery_vs2022.vcxproj /p:Configuration=Release /p:Platform=x64
```

**كوددا مؤكِّد**:

```powershell
.\x64\Release\deviceQuery.exe
```

يجب أن تظهر CUDA 12.1 (أو أي نسخة قمت بتثبيتها).

```
CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA RTX A4000"
  CUDA Driver Version / Runtime Version          12.3 / 12.1
  CUDA Capability Major/Minor version number:    8.6
  Total amount of global memory:                 16376 MBytes (17174683648 bytes)
  (048) Multiprocessors, (128) CUDA Cores/MP:    6144 CUDA Cores
  GPU Max Clock rate:                            1560 MHz (1.56 GHz)
  Memory Clock rate:                             7001 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 4194304 bytes
  ...
  Result = PASS
```

**ك**: `Result = PASS`

اختبار العينات CDUDA (الخيار ولكن موصى به)

## وتشمل مجموعة أدوات اللجنة المعنية بالقضاء على التمييز ضد المرأة برامج للعينات.

دعونا تجميع وتشغيل واحد.

### (يتم نقل العينات إلى العينات)

```bash
mkdir CudaTest
cd CudaTest
dotnet new console -n CudaTest
cd CudaTest
```

### 

[مُمَأَّته](https://onnxruntime.ai/)(الحاجات البصرية استوديوهات):

```bash
dotnet add package Microsoft.ML.OnnxRuntime.Gpu  # Latest version
```

**يجري تشغيله**

- `Microsoft.ML.OnnxRuntime`يجب أن ترى مخرجات مثل:
- `Microsoft.ML.OnnxRuntime.Gpu`مفتاح س س س س س س س س س س

### إذا رأيت هذا، فإن كومة GPU + CUDA + QDNN تعمل!

خطوة 5: اختبار من C`Program.cs`:

```csharp
using Microsoft.ML.OnnxRuntime;
using System;
using System.Linq;

namespace CudaTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("=== CUDA Test from C# ===\n");

            // Test 1: Can we create a CUDA execution provider?
            Console.WriteLine("Test 1: CUDA Execution Provider");
            try
            {
                var cudaProviderOptions = new OrtCUDAProviderOptions();
                var sessionOptions = new SessionOptions();
                sessionOptions.AppendExecutionProvider_CUDA(cudaProviderOptions);

                Console.WriteLine("✅ CUDA execution provider created successfully");
                Console.WriteLine($"   Device ID: {cudaProviderOptions.DeviceId}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"❌ Failed to create CUDA provider: {ex.Message}");
                return;
            }

            // Test 2: Check available providers
            Console.WriteLine("\nTest 2: Available Execution Providers");
            var providers = OrtEnv.Instance().GetAvailableProviders();
            foreach (var provider in providers)
            {
                Console.WriteLine($"   - {provider}");
            }

            if (providers.Contains("CUDAExecutionProvider"))
            {
                Console.WriteLine("✅ CUDA provider is available");
            }
            else
            {
                Console.WriteLine("❌ CUDA provider NOT available");
            }

            // Test 3: Get CUDA device count and info
            Console.WriteLine("\nTest 3: CUDA Device Information");
            try
            {
                // ONNX Runtime doesn't expose deviceQuery directly,
                // but we can test by trying to create a session
                var opts = new SessionOptions();
                opts.AppendExecutionProvider_CUDA(0); // Device 0

                Console.WriteLine("✅ Successfully configured for CUDA device 0");
                Console.WriteLine("   (Full device info requires native CUDA calls)");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"❌ CUDA device configuration failed: {ex.Message}");
            }

            Console.WriteLine("\n=== Test Complete ===");
        }
    }
}
```

**الآن الجزء الممتع - دعونا في الواقع استخدام CUDA من C#!**:

1. ****اضف ONNX وقت التشغيل مع Cuda
   
   - `DeviceId`وقت التشغيل ONNNNNX
   - هو أسهل طريقة لاستخدام CUDA من C#.

2. **لماذا هذه الحزمة؟**- المجموع فقط
   
   - - يشمل الدعم المقدم من حكومة كمبوديا
   - برنامج الاختبار:

3. ****الفصل
   
   - أولاً - مقدمـة
   - جاري تنفيذ CDDA

### - أي GPUP إلى استخدام (0 لـ الأول GPU)

```bash
dotnet run
```

**يمكن وضع حدود للذاكرة، مستوى الاستخدام الأمثل، وما إلى ذلك.**:

```
=== CUDA Test from C# ===

Test 1: CUDA Execution Provider
✅ CUDA execution provider created successfully
   Device ID: 0

Test 2: Available Execution Providers
   - CUDAExecutionProvider
   - CPUExecutionProvider
✅ CUDA provider is available

Test 3: CUDA Device Information
✅ Successfully configured for CUDA device 0
   (Full device info requires native CUDA calls)

=== Test Complete ===
```

### الدورة خيارات الدورة. أُعلِفِن المُنفِفِفِيِّر_CUDA ()

#### - يُخبرُ ONNX وقت التشغيل لاستخدام GPU

**إذا نجح هذا، CDDA تعمل**إذا فشل، شيء ما في كومة مكسور

**OrtEnv. Inststance(). تحصل على مخرجات**:

```powershell
# Make sure CUDA bin is in PATH
$env:PATH += ";C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin"

# Verify cudnn DLL exists
Test-Path "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\cudnn64_8.dll"

# Try running again
dotnet run
```

#### - قوائم بجميع مقدمي خدمات التنفيذ المتاحين

**يجب أن يتضمن "CUDA تنفيذ التنفيذ Provivider" إذا كان كل شيء مثبتاً بشكل صحيح**يظهر أيضاً "CPU Exexexexexexexicion Provider" كتراجع

****:

```bash
dotnet remove package Microsoft.ML.OnnxRuntime
dotnet add package Microsoft.ML.OnnxRuntime.Gpu --version 1.16.3
```

#### الناتج المتوقع

****خطأ: "Dllt: "Dlnthnxrn"

**سبب السبب السبب السبب السبب**لا يمكن العثور على دلالات (كودا)

## من النوع

الخطأ: "CUDA تنفيذ التنفيذProvid لم يُعثر"

### سبب السبب السبب السبب السبب

استخدام خطأ OnNX حزمة وقت التشغيل (الوحدات فقط).

```powershell
# Download sample model
Invoke-WebRequest -Uri "https://github.com/onnx/models/raw/main/vision/classification/mnist/model/mnist-8.onnx" -OutFile "mnist.onnx"
```

### من النوع

الخطأ: "CUDA خطأ الرمز: 35 (نسخة سوّاق CUDA غير كافية)"`Program.cs`:

```csharp
using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;
using System;
using System.Diagnostics;
using System.Linq;

namespace CudaTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("=== GPU vs CPU Inference Test ===\n");

            // Create dummy input (28x28 image flattened to 784 floats)
            var inputData = Enumerable.Range(0, 784).Select(i => (float)i / 784).ToArray();
            var tensor = new DenseTensor<float>(inputData, new[] { 1, 1, 28, 28 });
            var inputs = new List<NamedOnnxValue>
            {
                NamedOnnxValue.CreateFromTensor("Input3", tensor)
            };

            // Test 1: CPU Inference
            Console.WriteLine("Test 1: CPU Inference");
            var cpuTime = TestInference(inputs, useCuda: false, iterations: 100);
            Console.WriteLine($"   Average time: {cpuTime:F2}ms\n");

            // Test 2: GPU Inference
            Console.WriteLine("Test 2: GPU Inference");
            var gpuTime = TestInference(inputs, useCuda: true, iterations: 100);
            Console.WriteLine($"   Average time: {gpuTime:F2}ms\n");

            // Compare
            Console.WriteLine("Comparison:");
            Console.WriteLine($"   CPU: {cpuTime:F2}ms");
            Console.WriteLine($"   GPU: {gpuTime:F2}ms");
            Console.WriteLine($"   Speedup: {cpuTime / gpuTime:F2}x faster on GPU");
        }

        static double TestInference(List<NamedOnnxValue> inputs, bool useCuda, int iterations)
        {
            var options = new SessionOptions();

            if (useCuda)
            {
                options.AppendExecutionProvider_CUDA(0);
            }

            using var session = new InferenceSession("mnist.onnx", options);

            // Warmup run (first run is always slower)
            session.Run(inputs);

            // Timed runs
            var sw = Stopwatch.StartNew();

            for (int i = 0; i < iterations; i++)
            {
                using var results = session.Run(inputs);
                // Force evaluation
                var output = results.First().AsEnumerable<float>().ToArray();
            }

            sw.Stop();

            return sw.Elapsed.TotalMilliseconds / iterations;
        }
    }
}
```

**سبب السبب السبب السبب السبب**:

1. **السائق قديم جداً على (كودا 12x)**من النوع
   
   - : تحديث سائق NVIDIA إلى 545.xx أو أحدث.`[1, 1, 28, 28]`الاختبار المتقدم: الاختبار الفعلي

2. **دعونا نفعل شيئاً حقيقياً - تشغيل شبكة عصبية صغيرة جداً على GPU vs CCPU والمقارنة بين السرعات.**
   
   - سنستخدم نموذج التعرف على MNIST الرقمي البسيط (تنسيق ONNX).

3. **1 مد-1**& & جديد
   
   - تفسير الأمر

4. **المُرْسِس**- طريقة تشغيل OONNX في تمثيل المصفوفات متعددة الأبعاد

### الشاويج

```bash
dotnet run
```

**= الدفعة_ الحجم=1، القنوات=1، الارتفاع=28، العرض=28**الم

```
=== GPU vs CPU Inference Test ===

Test 1: CPU Inference
   Average time: 0.42ms

Test 2: GPU Inference
   Average time: 0.15ms

Comparison:
   CPU: 0.42ms
   GPU: 0.15ms
   Speedup: 2.80x faster on GPU
```

**- يُلزِد حِرساً إلى اسم مدخل**

- "Inprogt3" هو الاسم المدخل في نموذج MNNIST
- جاري تنفيذ
- - أول استنتاج هو دائما أبطأ (النموذج التحميل، الاستخدام الأمثل)

### نركض مرة واحدة قبل الوقت للحصول على قياسات دقيقة

منهجية التوقيت
✅ Driver installed correctly
✅ CUDA Toolkit accessible
✅ cuDNN integrated
✅ ONNX Runtime finds CUDA
✅ C# can run GPU-accelerated inference

## - متوسط أكثر من 100 تكرار من أجل تحقيق نتائج مستقرة

### 

الناتج المتوقع

```mermaid
sequenceDiagram
    participant App as C# Application
    participant CPU as CPU Memory
    participant GPU as GPU Memory
    participant Compute as GPU Cores

    App->>CPU: Create input tensor
    CPU->>GPU: Transfer input (PCIe)
    Note over GPU: Slow! ~16GB/s
    GPU->>Compute: Execute model
    Note over Compute: Fast! TFLOPS
    Compute->>GPU: Write output
    GPU->>CPU: Transfer output (PCIe)
    Note over GPU: Slow again!
    CPU->>App: Return results
```

**(سوف تُغيِّر أرقامك ما يلي):**:

1. **لماذا هذه السرعة الصغيرة؟**MNIST صغير (نموذج فقط 100KB)
2. **أولاً - الإدارة العامة لنقل البيانات المهيمنة**لـ لـ لـ لـ لـ أكبر نماذج لـ لـ لـ لـ لـ لـ أكبر نماذج لـ لـ لـ لـ لـ لـ لـ لـ المزيد
3. **لا يُجمع**لقد أثبتنا أن كل أعمال الرزمة:

### حالة

```mermaid
graph TD
    A[Inference Request] --> B{Model Size}
    B -->|< 100MB| C{Batch Size}
    B -->|> 100MB| D[Use GPU]

    C -->|Single Item| E[Use CPU]
    C -->|Batch > 10| D

    D --> F[10-100x Faster]
    E --> G[Lower Latency for Single]

    class D,E choice

    classDef choice stroke:#333,stroke-width:2px
```

**1 م م خ م**:

- **وهنا ما يحدث أثناء الاستدلال:**الدروس المستفادة من الدروس المستفادة من الأداء
- **تجهيزات التتبع**- تحويل العديد من المدخلات دفعة واحدة إلى نفقات عامة مستهلكة

حفظ البيانات على GPP

- **- عمليات السلاسل لتجنب عمليات النقل**استفادة أكبر من النماذج الأكبر حجماً
- **- تكلفة النقل الثابت، وتكلفة الإسناد**
- **(أ) قاعدة التحكم في الإبهام**المجموع

## - النماذج الكبيرة، والتجهيز بالدفعات، والتوليد

وحدة وحدة

1. ✅ Installed NVIDIA driver (545.xx+)
2. ✅ Installed CUDA Toolkit 12.1
3. ✅ Integrated cuDNN 8.9.7
4. ✅ Verified with `nvidia-smi`- النماذج الصغيرة، الطلبات المنفردة،`nvcc`
5. ✅ Tested GPU access from C# with ONNX Runtime
6. ✅ Ran performance comparison (GPU vs CPU)

مساعد مدوّنتنا:

## مُحَث

- عملية الوصلة 100+ + القطع JIU GPU**LL LLDDG**- نموذج كبير (7B params) JIU GPU

- الفئة الفئة الفئة
- - يعتمد على اختيار DB، في كثير من الأحيان con- Comp
- أولاً - موجز
- لقد نجحنا في:
- وقد عقد مؤتمراً بشأن

إن بيئتنا الإنمائية جاهزة الآن لأعباء العمل التي تضطلع بها منظمة العفو الدولية!

## ما هو التالي؟

### داخل

```powershell
# Check GPU
nvidia-smi

# Check CUDA
nvcc --version
where.exe nvcc

# Check cuDNN
Test-Path "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\cudnn64_8.dll"

# Check environment
$env:CUDA_PATH
$env:PATH -split ';' | Select-String CUDA

# Test from C#
dotnet run
```

### الجزء الثالث

سوف نتعمق عميقاً في التضمينات و قواعد بيانات المتجهات:
|-------|-------|-----|
| `nvidia-smi`ما هي التضمينات وكيف تمكن من البحث الدلالي؟
| `nvcc`الاختيار بين Qdrent، pgvectur، والخيارات الأخرى
إعداد موازنات محلياً مع وقت تشغيل OONNX
تخزين واستفسار الملايين من ناقلات الأمراض بكفاءة`Microsoft.ML.OnnxRuntime.Gpu` |
بناء أول نموذج بحثنا البحثي

### أخيراً سنبدأ العمل بمحتويات المدونات الفعلية ونشاهد "آر إي جي" في العمل!


|--------------|---------------|--------------|-----------------|
& سوQQQQQQQQ

/ خطأ سبب حدوث أو تثبيت

## لم يُعثر على سائق غير مُثبّت

- [CudA ليس في PATth اضف CUDA بن إلى PAT](/blog/building-a-lawyer-gpt-for-your-blog-part1)
- **/ DLL فشل التحميل / o QuDnn مفقود انسخ ملفات إلى CUDA Dir /**لم يعثر على مقدم خدمات CUDA
- [نسخة سائق غير كافية □ سائق قديم □ تحديث إلى 545.xx + □ □](/blog/building-a-lawyer-gpt-for-your-blog-part3)
- [](/blog/building-a-lawyer-gpt-for-your-blog-part4)
- [نسخة Cudda من النسخة الثانية من النسخة الثانية من النسخة o Onnnx وقت التشغيل سائق](/blog/building-a-lawyer-gpt-for-your-blog-part5)
- [1-16.x □ 545.xx + □](/blog/building-a-lawyer-gpt-for-your-blog-part6)
- [□ 12.3 □ 9.0.0 □ 1.17.x □ 546.x + □](/blog/building-a-lawyer-gpt-for-your-blog-part7)
- [□ □ 11.8 □ 8.9 2 □ □ 115.x □ 520.xx + □ □ □](/blog/building-a-lawyer-gpt-for-your-blog-part8)

## السلسلة

- [الجزء 1: مقدمة وهيكلة](https://docs.nvidia.com/cuda/)
- [الجزء 2: تركيبة الجيني وCUDA في C#](https://docs.nvidia.com/deeplearning/cudnn/api/index.html)
- [(الوظيفة الحالية)](https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html)
- [الجزء 3: فهم قواعد البيانات](https://developer.nvidia.com/)

الجزء 4: بناء خط الامتصاص[جزء من: جزء 5: المفكّل](/blog/building-a-lawyer-gpt-for-your-blog-part3)الجزء 6: التكامل المحلي