آغاز برنامه نویسی با کودا

 

شروع برنامه نویسی با کودا

دستورات مهم مدیریت حافظه در  CUDA

 

جدول 3- دستورات مدیریت حافظه در کودا

1.فایل های هدر کودا

#include "CUDA_runtime.h"

#include "device_launch_parameters.h"

2. پیش از اینکه شروع به کدنویسی کودا کنیم، لازم به ذکر است که بدانیم نحو دستوری زبان CUDA C و C بسیار شبیه به یکدیگر می باشد. اولین برنامه ای که در هر کدنویسی مثال زده می شود برنامهHello World  است که در اینجا قصد داریم مراحل اجرایی این برنامه را توضیح دهیم.

دو نوع اصلی از توابع کودا را در برنامه نویسی داریم:

۱- تابع __GLOBAL__: در این نوع از توابع کودا فراخوان از سوی HOST انجام می گیرد و انجام دهنده تابع همان DEVICE یا GPU است. در واقع فرمان اجرای تابع توسط HOST انجام می گیرد.


۲- تابع __DEVICE__ : دراین نوع از توابع کودا فراخوانی و اجرای تابع هر دو از سوی DEVICE یا GPU انجام می گیرد. در واقع تابعی است که کارهای درون برنامه ای را انجام می دهد.

 

برنامه Hello World

شکل 1- 8- سورس و خروجی کد نویسی به زبان C

 

 

 

 

شکل 1- 9- سورس و خروجی کد نویسی به زبان کودا

 

سادگی درک این مثال در این می باشد همه برنامه در سمت هاست یا همان CPU در حال اجراست. ما در اینجا به CPU و حافظه سیستم همان Host و به GPU و حافظه اش Device می گوییم.

همانطور که می بینیم کودا توصیف کننده __global__ را به استاندارد C اضافه می کند. این مکانیزم به کامپایلر اطلاع می دهد که یک تابع بایستی روی یک دستگاه به جای هاست اجرا شود.

تابعkernel() را به کامپایلر می دهد تا کدهای دستگاه را هندل کند و این خوراک main() برای کامپایلر هاست می باشد.

 

برنامه نویسی دوم به زبان کودا:

در برنامه بالا دو اتفاق جدید افتاده است:

·          ما می توانیم از پارامترهای ورودی تابع در یک کرنل همانطوری که در توابع درزبان برنامه نویسی C استفاده می کردیم.

·         ما نیاز به اختصاص دادن حافظه برای انجام دادن هر کار مفیدی در سمت Device داریم مثل بازگشتن مقادیر توابع به سمت Host.

 


نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.