X
تبلیغات
وکیل جرایم سایبری

CUDA Programming Applications

چگونگی زمانگیری اجرای برنامه در محیط ++C

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

در ابتدای اجرای دستورات کلاک CPU را فعال نموده و زمان لحظه ای را در متغیری نگه می داریم ، سپس در پایان دستورات برنامه دوباره کلاک را زده و زمان شروع را از آن کم کرده و مدت زمان اجرای برنامه را بدست می آوریم.

Void RunProgress(void)

}

;Using  namespace std::chrono

;()Auto starttime=steady_clock::now

;double x=0

}For(double i=0;i<20000;i++)

;X+=i

}

;()Auto durationtime=std::chrono::duration_cast<std::chrono::microsecond>(steady_clock::now() – StartTime

;std::cout << "sum: " << DurationTime.count() << "    NanoS \n

}

;()Int main

}

for (int i = 0; i < 30; i++)

                }

;() RunProgres

               {

;()Getchar

{


که توابع زمان در کتابخانه chrono می باشد.و در اینجا چون از جنس microsecond تعریف کردیم میکرو ثانیه را برمی گرداند و می توان از گزینه های millisecond  و یا  nanosecond هم استفاده نمود.

یک تجربه

 به عنوان یک تجربه ای ارزنده  که در مسیر یادگیری کودا بدست آوردم برخود لازم دانستم تا آن را با شما به اشتراک بگذارم در ابتدای نصب و کار با پلتفرم کودا برای این که با مشکلی موجه نشوید حتما سخت افزار کارت گرافیکتان را در سایت NVIDIA بررسی نمایید که آیا پلتفرم CUDA را پشتیبانی می کند یا خیر؟چون کارت گرافیک نصب شده روی سیستم من NVIDIA GEFORCE 210 بود و اطمینان خاطر داشتم که کودا را پشتیبانی می کند ،حتی در حین نصب کودا هم یک خطای سطحی داد و کار نصب را تکمیل نمود (شکل 1)

زعیش1.jpg

شکل1

اما در زمان اجرای کد (از همان کدهای sample کودا )با خطایی که در شکل 2 آمده مواجه شدم که این خطا مربوط به انتقال داده از CPU به GPU بود و نمی توانست کرنل کودا را اجرا نماید.

Code.jpg

add.jpg

بعد از چند روز جستجوی وسیع در سایتهای مختلف متوجه این موضوع شدم که NVIDIA GEFORCE 210 از اولین سری کارتهای گرافیک NVIDIA بوده که کودا را پشتیبانی می کرده است و با نسخه های قدیمی سازگاری دارد ،سپس با بررسی لیست سخت افزار های کارت گرافیک از سایت NVIDIA و تعویض کارت گرافیک با GEFORCE GTX 1050  مشکل حل شد.شما می توانید با مراجعه به آدرس زیر سخت افزار کارت گرافیک خود را بررسی نمایید.

https://developer.nvidia.com/cuda-gpus

و لازم بذکر است بهترین محیط برای برنامه نویسی کودا Visual Studio 2013 با پلتفرم کودا 7.5 و یا 8 است.

و امّا ترتیب نصب ملزومات کودا :

1- نصب درایور کارت گرافیک

2- نصب ویژوال استودیو2013

3- نصب مازول ++C

4- نصب NSIGHT

5- نصب پلتفرم CUDA


Geforce210.jpg

شکل4:GEFORCE 210

 

که شما می توانید با مراجعه به لینک http://cuda-tabatabaei.blogsky.com/category/Programming بصورت دقیقتر مراحل را مشاهده نمایید.