تفاوت بین هسته های CUDA و هسته های تانسور چیست؟ (توضیح داده شده) - همه تفاوت ها

 تفاوت بین هسته های CUDA و هسته های تانسور چیست؟ (توضیح داده شده) - همه تفاوت ها

Mary Davis

هسته های CUDA و Tensor محصولاتی هستند که توسط شرکتی به نام Nvidia توسعه یافته اند. پس هسته های CUDA و هسته های Tensor چیست؟ CUDA مخفف Compute Unified Device Architecture است. همانطور که توسعه‌دهندگان انویدیا می‌گویند، هسته‌های CUDA در پردازنده‌های گرافیکی، تلفن‌های هوشمند و حتی ماشین‌های شما وجود دارند.

هسته های CUDA یک پلت فرم محاسباتی موازی و رابط برنامه نویسی کاربردی (API) هستند که نرم افزار را قادر می سازد از انواع خاصی از واحدهای پردازش گرافیکی (GPU) برای پردازش همه منظوره استفاده کند.

در حالی که هسته های تانسور که توسط انویدیا نیز توسعه یافته اند، در پردازنده های گرافیکی نیز استفاده می شوند. هسته‌های تانسور محاسبات با دقت ترکیبی را فعال می‌کنند و محاسبات را به صورت پویا برای افزایش توان و در عین حال حفظ دقت تطبیق می‌دهند.

به عبارت ساده، این هسته‌ها بخش مهمی از GPUهای کامپیوتر شما برای انجام محاسبات خاص هستند. هسته های CUDA برای ضرب دو عدد و اضافه کردن آنها به عدد دیگر استفاده می شوند.

در حالی که هسته Tensor یکسان است اما با ماتریس های 4×4. این محاسبات اساساً گرافیک را سریعتر برای شما ارائه می کنند.

CUDA چیست؟

Compute Unified Device Architecture به طور خلاصه CUDA توسعه یافته توسط Nvidia، منتشر شده در 23 ژوئن 2007، یک پلت فرم محاسباتی موازی و رابط برنامه نویسی برنامه (API) است.

که نرم افزار را قادر می سازد تا از انواع خاصی از واحدهای پردازش گرافیکی (GPU) برای پردازش همه منظوره استفاده کند، روشی که به عنوان محاسبات همه منظوره شناخته می شود.پردازنده های گرافیکی (GPU).

همچنین ببینید: برای تأیید در مقابل تأیید: استفاده صحیح - همه تفاوت ها

CUDA یک لایه نرم افزاری است که دسترسی مستقیم به مجموعه دستورات مجازی GPU و عناصر محاسباتی موازی برای اجرای هسته های محاسباتی را فراهم می کند. CUDA برای کار با زبان های برنامه نویسی مختلف از جمله C، C++ و Fortran توسعه یافته است.

توانایی کار با زبان های برنامه نویسی مختلف، استفاده از منابع GPU را برای متخصصان برنامه نویسی موازی آسان تر می کند، اگر آن را از API های قبلی مانند Direct3D یا OpenGL متمایز کنیم، که به شما نیاز به داشتن یک برنامه پیشرفته تر دارد. پایه مهارت در برنامه نویسی گرافیکی

GPU با CUDA همچنین از چارچوب های برنامه نویسی مانند OpenMP، OpenACC، OpenCL و همچنین HIP پشتیبانی می کند که می تواند چنین کدهایی را در CUDA کامپایل کند. اولین نامی که برای CUDA استفاده شد مخفف Compute Unified Device Architecture بود. با این حال، انویدیا بعداً نام اختصاری رایج را حذف کرد.

یک کارت گرافیک قدرتمند Nvidia GTX 1080 Ti

اطلاعات بیشتر درباره CUDA

به عنوان یک پردازنده کامپیوتری تخصصی، واحد پردازش گرافیکی (GPU) نیازهای واقعی را برآورده می کند حجم کاری گرافیکی سه بعدی با زمان، محاسبات فشرده.

در حدود سال 2012 GPUها تکامل یافتند و به سیستم های چند هسته ای بسیار موازی تبدیل شدند که پردازش داده های موثر را برای بلوک های بزرگ ممکن می ساخت.

هنگام پردازش بلوک های عظیم داده به صورت موازی، این طراحی نسبت به واحدهای پردازش مرکزی همه منظوره (CPU) برای الگوریتم ها، مانند:

  • هش رمزنگاری برتر است.توابع
  • یادگیری ماشین
  • شبیه سازی دینامیک مولکولی
  • موتورهای فیزیک
  • الگوریتم های مرتب سازی
  • 12>> استفاده از معماری CUDA در حال حاضر و در آینده
    • پردازش سریع گرافیک های سه بعدی
    • تبدیل سریع فرمت های فایل های ویدئویی
    • رمزگذاری، رمزگشایی و فشرده سازی سریع
    • بیوانفورماتیک، به عنوان مثال، توالی یابی DNA NGS BarraCUDA
    • محاسبات توزیع شده، مانند پیش بینی ترکیب بومی پروتئین ها
    • شبیه سازی های تجزیه و تحلیل پزشکی، به عنوان مثال، واقعیت مجازی بر اساس تصاویر اسکن CT و MRI
    • شبیه سازی های فیزیکی، به ویژه در دینامیک سیالات
    • آموزش شبکه عصبی در مشکلات یادگیری ماشین
    • تشخیص چهره
    • پروژه های محاسباتی توزیع شده، مانند [email protected] و پروژه های دیگر با استفاده از BOINC
    • دینامیک مولکولی
    • استخراج ارزهای دیجیتال
    • ساختار از نرم افزار حرکت (SfM)

    هسته تانسور چیست؟

    هسته های تخصصی به نام هسته های تنسور امکان آموزش با دقت ترکیبی را فراهم می کنند. نسل اولیه این هسته های تخصصی این کار را با یک الگوریتم ضرب-افزودن ذوب شده انجام می دهد. این امکان ضرب و اضافه کردن دو ماتریس 4×4 FP16 را به یک ماتریس 4×4 FP16 یا FP32 می دهد.

    نتیجه نهایی FP32 تنها با کاهش جزئی دقت خواهد بود.ماتریس های ورودی ممکن است FP16 با دقت پایین باشند.

    در عمل، این به طور قابل توجهی سرعت محاسبات را با تأثیر کمی بر اثربخشی نهایی مدل افزایش می دهد. این ظرفیت توسط ریزمعماری های بعدی به نمایش اعداد رایانه ای حتی با دقت کمتری گسترش یافته است.

    نسل اول با ریزمعماری ولتا معرفی شد که از V100 شروع شد، فرمت‌های دقیق اعداد رایانه برای محاسبه با ریزمعماری‌های جدید GPU با هر نسل در دسترس قرار گرفت.

    ما در مورد اینکه چگونه ظرفیت و عملکرد Tensor Cores با هر نسل ریزمعماری تغییر کرده و بهبود یافته است در بخش بعدی صحبت خواهیم کرد.

    یک تصویر رندر شده گرافیکی ساخته شده توسط Titan V

    هسته های تانسور چگونه کار می کنند؟

    نسل اول:

    ریزمعماری GPU Volta با اولین نسل از هسته های Tensor گنجانده شد. این هسته ها امکان آموزش با دقت ترکیبی و فرمت شماره FP16 را فراهم کردند.

    این می تواند تا 12 برابر افزایش توان عملیاتی teraFLOP برای برخی از GPU ها داشته باشد. 640 هسته رده بالای V100 باعث افزایش 5 برابری سرعت عملکرد نسبت به پردازنده‌های گرافیکی پاسکال نسل قبلی می‌شود.

    نسل دوم:

    با معرفی پردازنده های گرافیکی تورینگ، نسل دوم Tensor Cores معرفی شد. Int8، Int4 و Int1 به لیست تنظیمات Tensor Core پشتیبانی شده اضافه شدند کهقبلاً به FP16 محدود شده بود.

    به دلیل ترکیبی از روش های آموزشی دقیق، توان عملیاتی GPU تا 32 برابر در مقایسه با GPU های پاسکال افزایش یافته است.

    نسل سوم:

    معماری در یک GPU Ampere با افزودن پشتیبانی از دقت FP64، TF32 و bfloat16، پیشرفت های قبلی ریزمعماری Volta و Turing را گسترش می دهد.

    آموزش یادگیری عمیق و فعالیت‌های استنتاج با این قالب‌های دقیق بسیار بیشتر تسریع می‌شوند. به عنوان مثال، فرمت TF32 عملکردی مشابه با FP32 دارد و در عین حال بدون تغییر کد، تا 20 برابر سرعت را تضمین می کند.

    سپس، تنها با چند خط کد، اجرای خودکار با دقت ترکیبی، سرعت آموزش را تا 2 برابر افزایش می‌دهد.

    نسل سوم NVLink برای فعال کردن فعل و انفعالات سریع چند GPU، هسته های نسل سوم Ray Tracing و تخصص با ریاضیات ماتریس پراکنده جنبه های اضافی ریزمعماری Ampere هستند .

    نسل چهارم:

    انتشار آینده نسل چهارم Tensor Cores مبتنی بر ریزمعماری Hopper برنامه ریزی شده است. نسل چهارم Tensor Cores در H100 بعدی.

    که انتظار می‌رود در مارس 2022 منتشر شود، می‌تواند فرمت‌های دقیق FP8 را مدیریت کند و به گفته انویدیا، مدل‌های زبانی بزرگ را با سرعت حیرت‌انگیز 30X سرعت می‌بخشد. نسبت به نسل قبلی."

    یک کارت گرافیک RTX استبرای نمایش گرافیکی بسیار سریع استفاده می شود زیرا حاوی هسته های تانسور است.

    همچنین ببینید: تفاوت بین 2πr و πr^2 - همه تفاوت ها

    تفاوت بین هسته های CUDA و هسته های تانسور

    هسته های تانسور در حال حاضر به Titan V و Tesla V100 محدود می شوند. 5120 هسته CUDA در هر دو پردازنده گرافیکی دارای حداکثر ظرفیت یک عملیات انباشته چند برابری دقیق (مثلاً در fp32: x += y * z) در هر ساعت GPU هستند (به عنوان مثال فرکانس PCIe Tesla V100 1.38Gz است).

    هر هسته تانسور بر روی ماتریس های کوچک 4×4 برای ماتریس های کوچک عمل می کند. در هر ساعت GPU، هر هسته تانسوری می تواند یک عملیات ضرب-انباشتگی ماتریس را تکمیل کند.

    دو ماتریس 4×4 FP16 را ضرب می کند و ماتریس 4×4 FP32 را اضافه می کند که منجر به انباشته می شود (که همچنین یک ماتریس 4×4 fp32 است).

    از آنجایی که ماتریس های ورودی fp16 هستند در حالی که نتایج ضرب و انباشتگر fp32 هستند، الگوریتم به عنوان دقت ترکیبی شناخته می شود.

    اصطلاح صحیح احتمالاً فقط «هسته‌های ماتریس 4×4» است، اما تیم بازاریابی NVIDIA استفاده از «هسته‌های تانسور» را انتخاب کرد.

    توضیحات کامل هسته های Tensor به طور خلاصه

    کارت GPU هسته های CUDA VRAM
    GeForce GTX 1660 Ti 1536 6GB
    GeForce GTX 1660 Super 1408 6GB
    GeForce GTX 1660 1408 6GB
    GeForce GTX 1650 Super 1408 4GB
    GeForce GTX 1650 1024 و896 4GB
    GeForce GTX 1060 3GB 1280 4GB
    GeForce GTX 1650 1280 3GB
    GeForce GTX 1060 6GB 768 6GB
    GeForce GTX 1050 Ti (3GB) 768 4GB
    GeForce GTX 1050 (2GB) 640 3GB
    GeForce GTX 960 1024 2GB
    GeForce GTX 950 786 2GB
    GeForce GTX 780 Ti 2880 2GB
    GeForce GTX 780 2304 3GB
    GeForce GTX 750 Ti 640 2 گیگابایت
    GeForce GTX 750 512 1 گیگابایت یا 2 گیگابایت

    GPUهایی که حاوی هسته های CUDA هستند

    نتیجه گیری

    • هسته های CUDA و Tensor محصولاتی هستند که هر دو توسط شرکتی به نام انویدیا توسعه یافته اند. CUDA مخفف Compute Unified Device Architecture است. این هسته‌های CUDA در پردازنده‌های گرافیکی، تلفن‌های هوشمند و حتی خودروهای شما وجود دارند.
    • در حالی که هسته های تانسور، که توسط انویدیا نیز ساخته شده اند، در پردازنده های گرافیکی نیز استفاده می شوند. هسته های تخصصی به نام "هسته های تنسور" امکان آموزش با دقت ترکیبی را فراهم می کنند. نسل اول Tensor Cores امکان آموزش با دقت ترکیبی و فرمت شماره FP16 را فراهم کرد.
    • این می‌تواند تا 12 برابر افزایش توان عملیاتی teraFLOP را برای GPUهای خاص داشته باشد. Int8، Int4 و Int1 به لیست دقت های Tensor Core پشتیبانی شده اضافه شدند.
    • به دلیل مختلطبا روش‌های تمرینی دقیق، عملکرد GPU تا 32 برابر افزایش یافت. نسخه بعدی نسل چهارم Tensor Cores مبتنی بر ریزمعماری Hopper برنامه ریزی شده است.

    مقالات دیگر

Mary Davis

مری دیویس یک نویسنده، خالق محتوا و محقق مشتاق است که در تحلیل مقایسه در موضوعات مختلف تخصص دارد. مری با مدرک روزنامه نگاری و بیش از پنج سال تجربه در این زمینه، علاقه زیادی به ارائه اطلاعات بی طرفانه و مستقیم به خوانندگان خود دارد. عشق او به نویسندگی از جوانی شروع شد و نیروی محرکه موفقیت او در نویسندگی بوده است. توانایی مری در تحقیق و ارائه یافته ها در قالبی آسان و قابل درک، او را برای خوانندگان در سراسر جهان محبوب کرده است. وقتی مری نمی‌نویسد، از سفر، مطالعه و گذراندن وقت با خانواده و دوستان لذت می‌برد.