PDA

View Full Version : سوال: برنامه نویسی cuda در VC++( کودا در ویژوال سی ++)



sibooy
دوشنبه 18 دی 1391, 16:46 عصر
آموزش مراحل نصب و راه اندازی 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 (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/installing-nvidia-cuda-with-visual-studio-2010/

هنوز به صروت رسمی شروع به برنامه نویسی با gpu نکردم ایشالا اینبار نتایج و نحوه برنامه نویسی رو که قدم به قدم یاد می گیرم براتون میگذارم
البته اینم بگم که برنامه هاتون رو باید توی مسیری که برنامه های CUDA SDK هست ذخیره کنید وگرنه برنامه اجرا نمی شه(حداقل مال من اجرا نمی شد)
مال من توی این مسیره
C:\Data Program\NVIDIA GPU Computing Toolkit\CUDA\v4.2\c\src
[B]اگر پوشه پیدا نیست (که صد در صد نیست چون مخفیه) تنضیمات فولدر آپشنتون رو تغییر بدین تا بتونید فایل ها و فولدر های مخفی رو هم ببینید
مطلب جدید:
برای دیدن یک کد کوتاه موازی شده با cuda (که البته این کد برای من بدون خطا اجرا می شه) به لینک زیر برید (خیلی این صفحه طولانی میشد از اینجا برش داشتم)
http://barnamenevis.org/showthread.php?393192-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-CUDA-%D8%A8%D8%B1-%D8%B1%D9%88%DB%8C-(vs-c-2010)-%D9%88%DB%8C%DA%98%D9%88%D8%A7%D9%84-%D8%A7%D8%B3%D8%AA%D9%88%D8%AF%DB%8C%D9%88-c&highlight=cuda
اگر شما هم مطلبی در این باره بلد هستید به من یاد بدید (خدا یک در دنیا و صد در آخرت عوض خیر بهتون بده)
تذکر: اگر هم می خواید برنامه نویسی بر روی CPU رو بر روی ویژوال استودیو C++‎‎‎‎‎‎‎ با کتابخونه openmp یاد بگیرید نحوه راه اندازی OPENMP در ویژوال استودیو C++‎‎‎‎‎‎‎ و یک قطعه کد کوتاه برنامه نویسی موازی رو در این لینک ببینید
http://barnamenevis.org/showthread.php?395000-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%88%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-vs-c-2010-%D8%A8%D9%87-%D9%88%D8%B3%DB%8C%D9%84%D9%87-OPENMP&p=1752134#post1752134
در پناه حق تعالی باشید

ادامه آموزش ها در این تاپیک هست
http://barnamenevis.org/showthread.php?414780-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%88%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-C-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%DA%86%D9%86%D8%AF-%D9%87%D8%B3%D8%AA%D9%87-%D8%A7%DB%8C%D8%8C-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9-%D9%88-%DA%86%D9%86%D8%AF-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D8%A7%DB%8C
--------------------------------------------------------------------------------------
زکات علم نشر آن است. مولی علی(ع)

adel28
یک شنبه 25 فروردین 1392, 11:19 صبح
ممنونم دوست عزیز

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

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

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

asmajon
سه شنبه 07 خرداد 1392, 11:32 صبح
سلام
یه برنامه دو بعدی برای مرتب سازی ماتریس ها می خواستم لطفا کمک کنید

sibooy
دوشنبه 11 شهریور 1392, 15:18 عصر
در این تاپیک هم روش نصب CUDA هم یک مثال از اون رو گذاشتم. هم برنامه نویسی موازی روی پردازنده های چندهسته ای با openMP رو با یک مثال گذاشتم.
http://barnamenevis.org/showthread.php?414780-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%88%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-C-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%DA%86%D9%86%D8%AF-%D9%87%D8%B3%D8%AA%D9%87-%D8%A7%DB%8C%D8%8C-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9-%D9%88-%DA%86%D9%86%D8%AF-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D9%86%D8%AF%D9%87-%D8%A7%DB%8C
دوستان اگر نکته ای آموزشی چیزی در مورد برنامه نویسی موازی با پردازنده های چند هسته ای پردازنده های گرافیکی و چند پردازنده ای بلدید همونجا بذارید.

salehnia66
چهارشنبه 24 مهر 1392, 15:36 عصر
سلام
من تو استفاده از کرنلا تو کودا مشکل دارم
ممنون ميشم بهم کمک کنين
من روالي که گفته بودي رو رفتم
ولي هنوز موفق نشدم برنامه اي باهاش بنويسم
ممنون:لبخندساده::چشمک:

AHMADABDALI
یک شنبه 07 اردیبهشت 1393, 13:23 عصر
انجام پروژه های کارشناسی ارشد با Cuda , GPU (http://cuda-pso-algoritm.blogfa.com/post/1)


برنامه نویسی 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 (http://cuda-arshad.blogfa.com/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
چهارشنبه 18 تیر 1393, 18:20 عصر
انجام پروژه های کارشناسی ارشد با Cuda , GPU (http://cuda-pso-algoritm.blogfa.com/post/1)


برنامه نویسی 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
دوشنبه 28 مهر 1393, 15:19 عصر
سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟
Access Denied

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

negative60
سه شنبه 29 مهر 1393, 09:11 صبح
سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟
Access Denied

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


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

sibooy
یک شنبه 25 آبان 1393, 18:15 عصر
سلام . چرا وقتی میخوام nvida دانلود کنم این پیغام میاد ؟
Access Denied

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

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

saeed_smco
جمعه 21 آذر 1393, 19:01 عصر
البته مهندس احمد به بنده لطف کردند و مشکلات من رو کمک کردند حل کردند . نگاه ایشون به این ماجرا اجرای پایان نامه نیست . بلکه به افراد کمک میکنند که پایان نامه هاشون رو روانتر پیش ببرند . مثل اینکه شما میخواهید از ابزاری استفاده کنید بک کلاس آموزشی میرید و دروه میبینید و کار با اون ابزار رو بهتر انجام میدید . در نهایت کار رو خودتون انجام دادید. ضمنا نگاه ایشون اصلا مادی نیست . البته وقتی وقت میگزارند باید ما جبران کنیم .

mobina_2006
پنج شنبه 04 دی 1393, 17:15 عصر
سلام میشه یکی منو کمک کنه ..میخام کودا رو اجرا کنم همش اررو میده

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

mobina.varmazyar@gmail.com

azfarahani1@gmail.com
سه شنبه 19 خرداد 1394, 23:00 عصر
من سوالاتی که دارم را مطرح میکنم .ممنون میشم که راهنمایی کنید.
کاری که من باید انجام بدم اجرای فشرده سازی ویدئو در استاندارد 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
سه شنبه 01 خرداد 1397, 08:33 صبح
سلام بر همه دوستان، در زمینه کودا یک کتاب جامع و کامل توسط آقایان علی اکبر اله دانه و پیام کیافر نوشته شده که نزدیک 1000 صفحه داره از مبتدی تا پیشرفته و 130 تا مثال در اون آورده شده اینم لینکش در زیر
http://www.naghoospress.ir/bookview.aspx?bookid=1487003