Personal Profile

کودا – CUDA

کودا به انگلیسی (CUDA) که مخفف عبارت انگلیسی Compute Unified Device Architecture است یک سکوی پردازش موازی و مدل برنامه‌نویسی است که توسط شرکت انویدیا به‌وجود آمده است و در واحدهای پردازش گرافیکی این شرکت پشتیبانی می‌شود.کودا به توسعه دهنده گان نرم‎افزار اجازه می‎دهد تا از یک GPU که ویژگی CUDA-enabled دارد برای هدف پردازش استفاده کنند، رویکردی که GPGUG شناخته می‎شود. کودا به توسعه‌دهنده گان امکان دسترسی مستقیم به حافظه و مجموعه دستورالعمل در واحد پردازش گرافیکی را می‌دهد.

سکوی کودا برای کار با زبان‎های برنامه‎نویسی مانند C و ++C و فرترن طراحی شده‎است.این دسترسی باعث می‎شود تا برای متخصصان استفاده از منابع GPU آسان‎تر شود برخلاف راه کار های API دیگر چون DIRECT3D و OpenGL که نیاز به توانایی حرفه ای در برنامه نویسی گرافیک داشتند.همچین کودا از چارچوب‎هایی چون OpenACC و OpenCL پشتیبانی می کند.

پیش زمینه

GPU به عنوان یک پردازنده خاص ،درخواست‎های های بلادرنگ با کیفیت بالا گرافیک سه بعدی که از نظر وظایف محاسباتی فشرده هستند را مختصات‎دهی می‎کند.از سال 2012 میلادی GPU ها به سیستم‎های چند هسته ای قدرتمندی ارتقا یافتند که قادر به دستکاری بلوک‎های بزرگی از داده ها هستند.این طراحی بسیار از هدف عامه CPU ها برای الگوریتم‎ها در مواقعی که پردازش موازی روی بلوک های داده انجام می‎شود موثرتر است.به عنوان مثال:

  • الگوریتم ارسال برچسب
  • الگوریتم مرتب سازی سریع روی لیست‎های ‎بزرگ
  • تبدیل موجک سریع دوبعدی
  • شبیه‎سازی دینامیک مولکولی

قابلیت‎های برنامه‌نویسی

کودا توسط کتابخانه‎های مجهز شده کودا ،دستوردهنده کامپایلر مانند OpenACC و همین طور توسعه‎هایی استاندارد صنعتی از زبان‎هایی شامل C، ++C و فرترن برای توسعه‎دهندگان قابل دسترسی است.برنامه‎نویسان C++/C از ‘++CUDA C/C’ استفاده می کنند که کامپایل شده با “nvcc” است.nvcc یک کامپایلر C++/C بر پایه LLVM شرکت انویدیا است.برنامه نویسان فرترن نیز می توانند از ‘CUDA Fortran’ استفاده کنند که کامپایل شده با PGI CUDA Fortran Complier شرکت The Portland Group است. علاوه بر کتابخانه‎ها ،دستوردهنده‎های کامپایلر و ++CUDA C/C و CUDA Fortran ،سکو کودا از سایر رابط‎های محاسباتی شامل موارد زیر پشتیبانی می کند.

  • OpenCL گروه Khronos
  • DirectCompute مایکروسافت
  • محاسبات سایه زنی OpenGL
  • C++ AMP

همچنین لفافه سوم شخص (Third party wrappers) برای زبان هایی مانند پرل (Perl)،پایتون (Python)،آر (R) ،فرترن (FORTRAN)،جاوا (Java)،روبی (Ruby)،هسکل (Haskell)،متلب (Haskell) ،آی دی ال (IDL)،لوآ (Lua) و نیز به طور پیشفرض متمتیکا (Mathematica) در دسترس هستند.

در صنعت بازی‎های کامپیوتری ،GPUها تنها برای رندر کردن گرافیک نیست بلکه در محاسبات فیزیکی بازی (اثرات فیزیکی شبیه دود ،آتش ،ترشحات و آوار) نیز هستند.مثال‎هایی نظیر فیز-اکس و گلوله شامل این مورد هستند.کودا همچنین برای کاربردهای شتاب‎دهی غیرگرافیکی در زیست‎شناسی محاسباتی ،رمزنگاری و حوزه های دیگر نیز استفاده می‎شود.

کودا هم یک API سطح پایین و هم یک API سطح بالا فراهم می کند.SDK اولیه کودا در 15 فوریه 2007 برای ویندوز مایکرو‎سافت و لینوکس انتشار عمومی شد.پشتیبانی در سیستم‎عامل مک در نسخه دوم اضافه شد که جای نسخه تست 14 فوریه 2008 را می‎گیرد.کودا با تمامی ‎GPUهای از سری G8x به بعد شامل جی‎فورس ،کوادرو و تسلا(گرافیک) کار می‎کند.کودا با بیشتر سیستم‎عامل‎‎های استاندارد کار می‎کند.انویدیا می‎گوید برنامه‎هایی که برای سری G8x توسعه‎یافته‎اند همچنین بدون تغییر روی نسل‎های آینده کارت‎های گرافیک بسته به سازگاری دودویی کارخواهند کرد.

مزایا

کودا چندین برتری در برابر محاسبات عمومی سنتی روی GPU ها(در کل منظورGPGPU) دارد که از واسط‎های گرافیکی استفاده می‎کنند.

  • خواندن پراکنده یعنی کد می‎تواند از آدرس‎های دلخواه در حافظه بخواند.
  • حافظه مجازی یکپارچه (کودا نسخه 4.0 به بعد)
  • حافظه یکپارچه(کودا نسخه 6.0 به بعد)
  • حافظه مشترک کودا ناحیه ای که یک حافظه سریع مشترک است ،نشان می‎دهد که می‎تواند میان نخ‎ها به اشتراک گذاشته‎شود.این حافظه می‎تواند به عنوان یک حافظه نهان مدیریت شده تحت دسترسی کاربر استفاده شود و پهنای باند بیشتری داریم یعنی امکان استفاده را از جستجو بافتی.
  • دانلود‎های سریع تر و مجدد خوانی
  • پشتیبانی کامل برای اعداد صحیح و عملیات بیتی شامل جستجوی بافتی صحیح

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available

*



Popular Pages
Popular posts
Interested
About me

My name is Sayed Ahmadreza Razian and I am a graduate of the master degree in Artificial intelligence .
Click here to CV Resume page

Related topics such as image processing, machine vision, virtual reality, machine learning, data mining, and monitoring systems are my research interests, and I intend to pursue a PhD in one of these fields.

جهت نمایش صفحه معرفی و رزومه کلیک کنید

My Scientific expertise
  • Image processing
  • Machine vision
  • Machine learning
  • Pattern recognition
  • Data mining - Big Data
  • CUDA Programming
  • Game and Virtual reality

Download Nokte as Free


Coming Soon....

Greatest hits

Anyone who has never made a mistake has never tried anything new.

Albert Einstein

Waiting hurts. Forgetting hurts. But not knowing which decision to take can sometimes be the most painful.

Paulo Coelho

It’s the possibility of having a dream come true that makes life interesting.

Paulo Coelho

Imagination is more important than knowledge.

Albert Einstein

One day you will wake up and there won’t be any more time to do the things you’ve always wanted. Do it now.

Paulo Coelho

Gravitation is not responsible for people falling in love.

Albert Einstein

The fear of death is the most unjustified of all fears, for there’s no risk of accident for someone who’s dead.

Albert Einstein

You are what you believe yourself to be.

Paulo Coelho


Site by images
Statistics
  • 6,285
  • 19,118
  • 62,650
  • 18,334
Recent News Posts