# Native Code > برنامه نویسی با C > برنامه نویسی با MFC و ++Visual C > سوال: برنامه نویسی cuda در VC++‎( کودا در ویژوال سی ++)

## sibooy

*آموزش* *مراحل نصب و راه اندازی cuda در ویژوال استودیو 2010*
برای نصب کودا لازمه که اول درایور های کودا رو از سایت انویدیا دانلود کنید
اگر از ایران می خواید وارد سایت انویدیا بشید حتما باید یه فیلتر شکن قوی داشته باشید که سایت انویدیا نفهمه شما  از ایران دارید وصل می شید (چون سایت انویدیا اصلا به ایران خدمات نمیده  و ما رو جزء لیست تحریمش قرار داده)
پس اول شد فیلتر شکن
بعدم باید درایورهای انویدیا رو دانلود کنید
بعدم باید cuda toolkit رو دانلود کنید  و نصب کنید
از این لینک
http://developer.nvidia.com/cuda-downloads
بعدم cuda sdk رو دانلود کنید و نصب کنید (از همون لینک بالا)
البته اگه نسخه 5 از cuda toolkit  رو دانلود کنید sdk هم همراهشه. 

البته من که دانلود کردم sdk همراهش نبود نمی دونم چرا توی سایتش نوشته همراهشه. 

ولی توی نسخه های قدیمی تر toolkit و sdk از هم دیگه جدان
*مثلا من خودم از نسخه 4.2 استفاده می کنم که هم toolkit و هم SDK ش بصورت جداگانه قابل نصب هست و کار آدمم خیلی خوب راه میندازه*
اینم لینکش 
*https://developer.nvidia.com/cuda-toolkit-42-archive*
نکته دیگه اینه که باید حواستون باشه موقع دانلود cuda toolkit و cuda sdk به 64 یا 32 بیتی بودن ویندوزتون هم توجه کنید.

بعد ویژوال استودیو  2010 یا 2008 یا 2005 رو نصب کنید.

من خودم 2010 رو نصب کردم

حالا برای ایجاد یک پروژه کوچیک کودا مراحل زیر رو برید

1- ویژوال C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎  ‎‎‎ 2010 رو باز کنید

2- از این مسیر یه پروژه جدید سی++ درست کنید

project: file->new->project, select win32 console application

توی پنجره application setting در قمشت application type گزینه consol application رو انتخاب کنید و از قسمت  additional options گزینه empty project رو انتخاب کنید و بعدم دکمه finish رو بزنید

بعد یک  فایل جدید برنامه نویسی (نه پروژه) cpp درست می کنیم. برای این کار می شه روی پروژه راست کلیک کرد و (add->new item) رو زد

بعد روی فایل جدیدی که درست کردید و پسوند cpp راده راست کلیک کنید و rename رو بزنید و پسوندشو از .cpp. به cu. تغییر بدید

3- حالا مسیر زیر رو برید

tools->options->text editor->file extension

و پسوند cu. رو در قسمت extension بنویسیسد و دکمه add و سپس دکمه ok رو بزنید

4- حالا روی پروژه راست کلیک کنید و از منوی باز شده  build costomization رو کلیک کنید از پنجره باز شده  cuda رو علامت بزنید  و دکمه ok  رو بزنید

5- بازم روی پروژه تون راست کلیک کنید و این مسیر رو برید

properties -> configuration properties -> linker -> input

و cudart.lib و cuda.libرو در قسمت addithional می نویسیم و ok می کنیم بازم پنجره رو ok می کنیم ( البته من این دو فایل رو از جایی که کودا رو نصب کردم کپی کردم و بردم ریختم توی پوشه کتابخونه های vc نمی دونم این کار خودسرانه من تاثیری در اجرای برنامه داشته یا همون اضافه کردن کتابخونه ها به لینکر کافیه)
6- یک کار دیگه که یادم رفته بود بنویسم اینه که برنامه تون اجرا بشه باید روی فایل برنامه نویسی که پسوندش رو از cpp به cu تغییر دادین راست کلیک کنید و گزینه properties رو بزنید و در قسمت configuration properties روی قسمت general برید و در فریم کناری از گزینه item type گزینه cuda c/C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎ انتخاب کنید و ok رو بزنید
با این کار کتابخانه cuda رو هم فعال می کنیم.
*یک کار دیگه ای هم که کردم این بود که تمام فایل های هدر این پوشه رو 
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.2\CUDALibraries\common\inc
ریختم توی پوشه 
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include
و دیگه هر فایل هدری رو که بخوام راحت می تونم include کنم*
حالا به عنوان مثال می تونید کد زیر رو در فایل cpp تون که به cu تغییر پسوندش دادید بنویسید تا از درایورهاتون گزارش بگیرi
#include<stdio.h>

#include<cuda_runtime.h>
int main(int argc, char** argv)

{
    int deviceCount=0;

    cudaError_t error_id=cudaGetDeviceCount(&deviceCount);

    return 0;

}

من خودم خیلی برای پیدا کردن تمام مراحلی که بالا نوشتم مصیبت کشیدم. توی منابع فارسی که درست و حسابی نیست

لینک منبع انگلیسیش رو هم براتون میگذارم انصافا خدا خیرشون بده که خیلی کمکم کردن توی این لینک می تونید تصاویر راهنمای هر مرحله از کار رو ببینید چون خیلی تصاویر بزرگ بود براتون نگذاشتم

http://www.stevenmarkford.com/instal...l-studio-2010/

هنوز به صروت رسمی شروع به برنامه نویسی با gpu نکردم ایشالا اینبار نتایج و نحوه برنامه نویسی رو که قدم به قدم یاد می گیرم براتون میگذارم
[B]البته اینم بگم که برنامه هاتون رو باید توی مسیری که برنامه های CUDA SDK هست ذخیره کنید وگرنه برنامه اجرا نمی شه(حداقل مال من اجرا نمی شد)
مال من توی این مسیره
C:\Data Program\NVIDIA GPU Computing Toolkit\CUDA\v4.2\c\src
*اگر پوشه پیدا نیست (که صد در صد نیست چون مخفیه) تنضیمات فولدر آپشنتون رو تغییر بدین تا بتونید فایل ها و فولدر های مخفی رو هم ببینید*
مطلب جدید:
برای دیدن یک کد کوتاه موازی شده با cuda (که البته این کد برای من بدون خطا اجرا می شه) به لینک زیر برید (خیلی این صفحه طولانی میشد از اینجا برش داشتم)
https://barnamenevis.org/showthread.p...highlight=cuda
اگر شما هم مطلبی در این باره بلد هستید به من یاد بدید (خدا یک در دنیا و صد در آخرت عوض خیر بهتون بده)
تذکر: اگر هم می خواید برنامه نویسی بر روی CPU رو بر روی ویژوال استودیو C++‎‎‎‎‎‎‎‎ با کتابخونه openmp یاد بگیرید نحوه راه اندازی OPENMP در ویژوال استودیو C++‎‎‎‎‎‎‎‎ و یک قطعه کد کوتاه برنامه نویسی موازی رو در این لینک ببینید
https://barnamenevis.org/showthread.p...34#post1752134
در پناه حق تعالی باشید

ادامه آموزش ها در این تاپیک هست
https://barnamenevis.org/showthread.p...7-%D8%A7%DB%8C
--------------------------------------------------------------------------------------
*زکات علم نشر آن است. مولی علی(ع)*

----------


## adel28

ممنونم دوست عزیز

چند سوال در زمینه دانلود فایل ها:
ما در کل برای این منظور باید چند فایل دانلود کنیم؟
1- درایور  خود Nvidia
2-  برنامه CUDA v5.0 که از لینک زیر نسخه مربوط به ویندوز خودمون رو دانلود می کنیم.
https://developer.nvidia.com/cuda-downloads

با چه چیزی رو باید دانلود کنیم؟ sdk رو از کدوم قسمت باید بگیرم؟

----------


## sibooy

سلام دوست عزیز
متاسفانه من هرکاری کردم با نسخه 5 نتونستم sdk رو نصب کنم. (شاید نسخه 5 شون ایراد داره :متفکر: )
برای همین از نسخه 4.2 استفاده می کنم که هم toolkit اون جداس هم SDK ش
شما از این لینک (البته فقط با فیلتر شکن میتونید واردش بشید چون انویدیا به ایران سرویس نمیده :خیلی عصبانی: )
https://developer.nvidia.com/cuda-toolkit-42-archive
اول تولکیت  رو دانلود کنید بعد cuda نسخه 4.2 رو بعدم SDK رو کودا رو هم باید متناسب با ویندوزتون دانلود کنید
اگرم با لینوکس کار می کنید قسمت پایین ترش نسخه لینوکس هست
امیدوارم تونسته باشم بهتون کمک کرده باشم
شخصا توصیه می کنم وقت خودتونو بابت نسخه 5.0 هدر ندید. 
درپناه حق تعالی باشید

----------


## asmajon

سلام
یه برنامه دو بعدی برای مرتب سازی ماتریس ها می خواستم لطفا کمک کنید

----------


## sibooy

در این تاپیک هم روش نصب CUDA هم یک مثال از اون رو گذاشتم. هم برنامه نویسی موازی روی پردازنده های چندهسته ای با openMP رو با یک مثال گذاشتم. 
https://barnamenevis.org/showthread.p...7-%D8%A7%DB%8C
دوستان اگر نکته ای آموزشی چیزی در مورد برنامه نویسی موازی با پردازنده های چند هسته ای پردازنده های گرافیکی و چند پردازنده ای بلدید همونجا بذارید.

----------


## salehnia66

سلام
من تو استفاده از کرنلا تو کودا مشکل دارم
ممنون ميشم بهم کمک کنين
من روالي که گفته بودي رو رفتم
ولي هنوز موفق نشدم برنامه اي باهاش بنويسم
ممنون :لبخند:  :چشمک:

----------


## AHMADABDALI

*انجام پروژه های کارشناسی ارشد با Cuda , GPU*


برنامه نویسی Cuda یک سبک کاملا جدید از برنامه نویسی موازی می باشد که بجای  اینکه الگوریتم موازی در cpu اجرا شود در gpu کارت گرافیک انجام میگیرد در واقع از  امکانات سخت افزاری کارت گرافیک به خوبی استفاده میکنیم تا بار محاسباتی cpu  کاهش  یابد تحقیقات نشان داده که زمان اجرا در Gpu در اکثر مواقع از cpu کمتر است . با  توجه به اینکه در تعداد زیادی از دانشگاه های کشور cuda وارد عرصه تحقیقاتی شده  است که یک حیطه بکر و تازه برای تحقیقات است . ام متاسفانه عدم وجود منابع کافی حتی  لاتین و فقدان منابع فارسی و دشواری برنامه نویسی این سبک هر ترم به تعداد مشخصی  پروژه برنامه نویسی Cuda را می پذیریم . لیست آموزش Cuda
 - نصب و راه اندازی Cuda در کامپایلر های مشهور از جمله Visual Studio 2010  &2012
 - آموزش معماری و سخت افزار GPU
 - آموزش فریم ورک Cuda و دستورات Cuda  در محیط ++VC
  - آموزش فریم ورک Cuda و دستورات Cuda  در محیط C#‎‎‎‎‎‎.net
 - آموزش بکار گیری فایل های ptx حاصل از Cuda  و بکار گیری آنها در matlab
 - آموزش Mex و بکار گیری آن در مطلب
 - آشنای با کتابخانه thrust برای سرعت بخشیدن به برنامه نویسی GPU با Cuda
 - آشنایی با امکانات matlab برای کار با GPU
  آشنایی با امکانات CUDAFY.NET برای کار با GPU
 پروژه های پیشنهادی که با Cuda پیاده سازی کرده ایم
 - کتابخانه GPUMLIB
 - کتابخانه SVMLIB
  - الگوریتم ژنتیک GENATIC با CUDA
 - الگوریتم کرم شب تاب Fire Fly با Cuda
 - الگوریتم کلونی مورچه ACO با Cuda
 - الگوریتم ذرات و پرندگان PSO با Cuda
 - الگوریتم فاخته Cuckoo با Cuda
 -الگوریتم فروشنده دوره گرد TSP با Cuda
 - الگوریتم وارشال Warshal با Cuda
-الگوریتم رقابت استعماری با Cuda
 -الگوریتم کلونی زنبور ها با Cuda
 -الگوریتم جستجوی هارمونی با Cuda
 و ...

آدرس سایت :www.abdalionline.irتلفن : 09380041065ایمیل :ahmad.abdali.m@gmail.com
آموزش برنامه نویسی پردازش موازی بوسیله CUDA تکنولوژی برنامه نویسی GPU از NVIDIA ,Parallel Computing with CUDA, آموزشی برنامه نویسی CUDA و CUDA C برای استفاده از امکانات و قابلیت های GPU های NVIDIA را به خوبی خواهید آموخت,آموزش پردازش موازی با استفاده از , الگوریتم فاخته یا Cuckoo در Cuda   ,الگوریتم موازی cuckoo   ,الگوریتم موازی PSO ,الگوریتم موازی کرم شب تاب , الگوریتم ژنتیک در Cuda , انجام پروژه ها و پایان نامه های ارشد , انجام پروژه های Cuda , انجام پروژه های GPU  , انجام پروژه های موازی , برنامه نویسی Cuda  , برنامه نویسی GPU , برنامه نویسی کودا , نصب cuda در متلب Matlab , نصب و راه اندازی Cuda , پروژه FireFly در cuda ,پروژه PSO در Cuda , پروژه الگوریتم کرم شب تاب در Cuda     GPU , کتابخانه gpumlib و برنامه نویسی Cuda

----------


## sibooy

> *انجام پروژه های کارشناسی ارشد با Cuda , GPU*
> 
> 
> برنامه نویسی Cuda یک سبک کاملا جدید از برنامه نویسی موازی می باشد که بجای  اینکه الگوریتم موازی در cpu اجرا شود در gpu کارت گرافیک انجام میگیرد در واقع از  امکانات سخت افزاری کارت گرافیک به خوبی استفاده میکنیم تا بار محاسباتی cpu  کاهش  یابد تحقیقات نشان داده که زمان اجرا در Gpu در اکثر مواقع از cpu کمتر است . با  توجه به اینکه در تعداد زیادی از دانشگاه های کشور cuda وارد عرصه تحقیقاتی شده  است که یک حیطه بکر و تازه برای تحقیقات است . ام متاسفانه عدم وجود منابع کافی حتی  لاتین و فقدان منابع فارسی و دشواری برنامه نویسی این سبک هر ترم به تعداد مشخصی  پروژه برنامه نویسی Cuda را می پذیریم . 
> . . . 
> آموزش برنامه نویسی پردازش موازی بوسیله CUDA تکنولوژی برنامه نویسی GPU از NVIDIA ,Parallel Computing with CUDA, آموزشی برنامه نویسی CUDA و CUDA C برای استفاده از امکانات و قابلیت های GPU های NVIDIA را به خوبی خواهید آموخت,آموزش پردازش موازی با استفاده از , الگوریتم خفاش در  Cuda , الگوریتم فاخته یا Cuckoo در Cuda   ,الگوریتم موازی cuckoo   ,الگوریتم موازی PSO ,الگوریتم موازی کرم شب تاب , الگوریتم ژنتیک در Cuda , الگوریتم گرده افشانی گل ها در Cuda , انجام پروژه ها و پایان نامه های ارشد , انجام پروژه های Cuda , انجام پروژه های GPU  , انجام پروژه های موازی , برنامه نویسی Cuda  , برنامه نویسی GPU , برنامه نویسی کودا , نصب cuda در متلب Matlab , نصب و راه اندازی Cuda , پروژه FireFly در cuda ,پروژه PSO در Cuda , پروژه الگوریتم کرم شب تاب در Cuda     GPU , کتابخانه gpumlib و برنامه نویسی Cuda





دوست عزیز آیا میدونید انجام پروژه های دانشجویی یک کار غیر اخلاقیه و البته درآمدش هم حلال نیست؟
چون خیانته درحق همه کسانی که خودشون برای انجام پروژه هاشون زحمت می کشن
اینجا راه اندازی شده برای اینکه افراد به هم کمک کنن، یاد بگیرن، فکر کنن و خودشون حل مسئله شون رو کشف کنن نه اینکه بیاید برای نوشتن پروژه تبلیغ کنید. پس تکلیف کسانی که خودشون برای کارهاشون زحمت می کشن چی میشه؟

----------


## elnaz ja

سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟ 
*Access Denied*

You don't have permission to access "http://developer.nvidia.com/cuda-toolkit-42-archive" on this server.

----------


## negative60

> سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟ 
> *Access Denied*
> 
> You don't have permission to access "http://developer.nvidia.com/cuda-toolkit-42-archive" on this server.


ايران رو تحريم کرده با فيلترشکن امتحان کنيد

----------


## sibooy

> سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟ 
> *Access Denied*
> 
> You don't have permission to access "http://developer.nvidia.com/cuda-toolkit-42-archive" on this server.


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

----------


## saeed_smco

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

----------


## mobina_2006

سلام میشه یکی منو کمک کنه ..میخام کودا رو اجرا کنم همش اررو میده 

ایم ایمیل منه شمارشو بداره تماس می گیرم مرسی

mobina.varmazyar@gmail.com

----------


## azfarahani1@gmail.com

من سوالاتی که دارم را مطرح میکنم .ممنون میشم که راهنمایی کنید.
کاری  که من باید انجام بدم اجرای  فشرده سازی ویدئو در استاندارد  H.265  از طریق gpu  می باشد.البته از بحث فشرده سازی من تو قدم اول انکودر  را انجام میدم و بعد از اون میرم سراغ بقیه قسمتهای فشرده سازی.در حال  حاضر من این کار را با C++‎ انجام میدم.حالا میخام سورس کدهای C++‎ را تبدیل  کنم به کودا ، تا بتونم از طریق GPU اجراش کنم.
سعی کردم که از طریق  اطلاعاتی که تو سایتهای مختلف هست ، کودا را در ویژوال استادیو 2012 راه  اندازی کنم که به چند تا مشکل بر خوردم .
سوال اول
من تمام مراحل این سایت  را انجام میدم .ولی  در لیست کشویی در قسمت  Item type گزینه  Cuda c/C++‎  را ندارم .

مشکله دیگم اینه که وقتی برنامه ای را اجرا میکنم این error  میاد :
fatal error C1083: Cannot open include file: 'cuda_runtime . h': No such file or directory

ورژن ویژوال استادیو من 2012 است.

میشه راهنماییم کنید.

----------


## ali1112

سلام بر همه دوستان، در زمینه کودا یک کتاب جامع و کامل توسط آقایان علی اکبر اله دانه و پیام کیافر نوشته شده که نزدیک 1000 صفحه داره از مبتدی تا پیشرفته و 130 تا مثال در اون آورده شده اینم لینکش در زیرhttp://www.naghoospress.ir/bookview.aspx?bookid=1487003

----------

