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

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

Wednesday, 12 November 2025

//

22 minute read

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

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

## أولاً

مرحباً بكم في الجزء الثانيداخلالجزء الأول

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

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

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

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

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

كندا

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 7BRTX 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 في وقت التشغيل هو تجريبيباء - النموذج∗ معظم نماذج نموذج النموذج العالمي للإدارة
  • دعم المشروع المباشر

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

مراقبة:

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

# PowerShell
wmic path win32_VideoController get name

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

Name
NVIDIA RTX A4000

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

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

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

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 معلومات نظام معلومات أي لسان العرض.
  • أولاً - لمحة عامةهذه هي الطريقة التي يعمل بها كومة البرمجيات:
  • ****سائق نزيديا
  • - الاتصال على مستوى منخفضمجموعة أدوات

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

قُدْس

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

  • أُطر العمل الرفيعة المستوى
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 أو جديدة

  2. هذه نسخة MAX Cudda المدعومة، وليس ما تم تثبيته

    • : مستخدم حالياً / المجموع VRAMم
    • في حالةلا يعمل أو سائقك قديم
    • إلى:NVIDIA
    • (ب) ما يلي:**نوع المنتج:**RTX/Quadro
    • سلسلة المنتجات:سلسلة سلاسل RTX RTX Axxxxxالمنتج:
  3. طراز RTXX A.4000

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

11

(أو نسختك)

سائق سائق(أكثر استقراراً من مُنتِز أكثر من مُنتِز أكثر استقراراً من المُفكِزالتثبيت وإعادة التشغيل(د) التصديق مرة واحدة على

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

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

  1. تحديداً:كدودا ١٢,١+
    • التوازن الجيد للتوافق والسمات (في وقت الكتابة)- التحقق من التوافق مع مكتباتك
  2. ١١ )خ( ١١- الحاجة إلى نماذج جديدة للنماذج
  3. & لا يجري

إلى:

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

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 (محلية)

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

الملحقات

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

$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. كِش كِش تحريرPathIF مفقود، اضض

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp
    
  4. & علِم

دال - يمين

# 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
# Check path resolves
where.exe nvcc
# Should show: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin\nvcc.exe

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

الموارد تحت

مضافاً إليه/مضافاً إليه ما يلي:: داخل(ب) ضمان وجود هذه العناصر على النحو التالي:

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

(بآلاف

  1. 1 ف-5، 1 ف-3، 1 خ م، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)، 1 خ ع (رأ)قُدْس
  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)

المصدر::

# 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\استورد و استق@ QDNC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include\
  3. Qudnn عبارة عن مجموعة من الملفات التي تنسخها إلى تثبيت CUDA الخاص بك.lib\x64\استخلص الـ الـ ZIPC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64\

سترى:

# 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

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

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

nvidia-smi

ثالثاً -

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

nvcc --version

ثالثاً -

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

# 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: التحقق الكامل:

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

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

cd "1_Utilities\deviceQuery"

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

# 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

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

.\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 (الخيار ولكن موصى به)

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

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

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

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

مُمَأَّته(الحاجات البصرية استوديوهات):

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

يجري تشغيله

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

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

خطوة 5: اختبار من CProgram.cs:

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)

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(). تحصل على مخرجات:

# 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" كتراجع

****:

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

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

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

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

من النوع

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

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

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

# 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:

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 في تمثيل المصفوفات متعددة الأبعاد

الشاويج

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 تكرار من أجل تحقيق نتائج مستقرة

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

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. لا يُجمعلقد أثبتنا أن كل أعمال الرزمة:

حالة

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 GPULL LLDDG- نموذج كبير (7B params) JIU GPU

  • الفئة الفئة الفئة

    • يعتمد على اختيار DB، في كثير من الأحيان con- Comp
  • أولاً - موجز

  • لقد نجحنا في:

  • وقد عقد مؤتمراً بشأن

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

ما هو التالي؟

داخل

# 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

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

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

السلسلة

الجزء 4: بناء خط الامتصاصجزء من: جزء 5: المفكّلالجزء 6: التكامل المحلي

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.