پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای

پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای پژوهش کامل در حوزه کامپیوتر و IT میباشد و در 7 فصل تنظیم شده است.این پروژه با معرفی واحد پردازش گرافیکی (GPU) به پیاده سازی الگوریتم موازی پرداخته است. شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.

پروژه بصورت فایل قابل ویرایش ورد(WORD) در 124 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.

چکیده

در سال های اخیر، افزایش روز افزون عملکرد کارت های گرافیکی، محققین را به فکر بهره گیری از توان پردازشی آنها در کاربردهای غیر گرافیکی انداخته است. درهمین راستا شاخه جدیدی در علوم کامپیوتر به نام محاسبات با اهداف همه منظوره روی واحد GPU ایجاد شده است ، هدف فعالان این عرصه بهره گیری از کارت گرافیک به عنوان یک کمک پردازنده محاسباتی در برنامه های غیرگرافیکی و برنامه های عمومی است.ازاین رو از صنعت محاسباتی گرفته تا محاسبات موازی دچار تغییرات گسترده ای شده وعملیات انتقال تقریبا تمام کامپیوترهای مصرف کننده سال 2010 همراه با پردازنده های چند هسته ای صورت گرفته است صنعت رایانه ای در سراشیبى تند انقلاب محاسباتی موازی قرار دارد ،نتیجه اینکه در پی آن، تقریبا هر برنامه نویس مشتاق در آن نیاز به آموزش برنامه نویسی موازی دارد تا بتواند در علوم کامپیوتری به طور کامل موثر واقع شود. و در نتیجه CUDA C NVIDIA تا کنون به عنوان یکی از موفق ترین زبانهای عمل کرده است که تا به حال برای محاسبات موازی طراحی شده است. در این پایان نامه، ضمن بیان مقدمه ای از CUDA، تعدادی از دستورات زبان NVIDIA CUDA C معرفی خواهد شد.

واژه های کلیدی:کارت های گرافیکی،NVIDIA CUDA C، برنامه نویسی موازی،GPU، کودا

فهرست مطالب

فصل اول  مقدمه

1-1- واحد پردازش گرافیکی.. 2

1-2- مقایسه توانایی هایGPU باCPU.. 3

1-3- مقایسه سخت افزار GPU با CPU.. 6

1-4- فناوری های ATI و NVIDIA.. 7

فصل دوم  محاسباتGPU

2-1- تکامل محاسبات GPU.. 14

2-2- توسعه فن اوری GPU.. 14

2-3-GPU های اولیه. 15

2-4- محاسبات یکپارچه و GPU ها16

2-5- سیتم های محاسبات GPU.. 17

2-6- اکوسیستم محاسبات GPU.. 17

فصل سوم  محاسبات multi-GPU

3-1- معماری محاسباتی تسلا.. 20

3-2- چند پردازندههای جریانی.. 20

3-3- حافظه های GPU.. 20

3-4- نمونه SIMT. 22

3-5- معماری مقیاس پذیر کودا22

3-5-1- معماری دستگاه کودا22

3-5-2- تردها، بلاک ها و گریدها: تطبیق الگوریتم ها با مدل کودا23

3-5-3- کاربردهای کودا26

3-5-4- معماری مجموعه دستور و اجرا نخ های موازی.. 33

3-5-5- معماری حافظه کودا35

3-5-6- قابلیت محاسباتی.. 36

3-5-7- مدل برنامه نویسی کودا37

3-5-8- یک مدل برنامه نویسی ناهمگن.. 38

3-5-9- پشته نرم افزاری کودا41

3-5-10- سازمان نخ ها41

3-5-11- CUDA C.. 43

3-5-12- کامپایل یک برنامه کودا46

3-5-13- اشکال زدایی یک برنامه کودا46

3-5-14- افزایش کارایی.. 47

3-6- نگاشت به معماری تسلا.. 48

3-7- پشتیبانی ممیز شناور. 48

3-8- سیستم های محاسباتی NVIDIA Tesla S1070. 49

3-9- معماری محاسبه فرمی.. 50

3-9-1- سلسله مراتب حافظه کش.... 51

3-9-2- حافظه ECC.. 52

3-9-3- چند پردازندههای جریانی.. 52

3-10- برنامه نویسی multi-GPU.. 53

فصل چهارم  پیاده سازی پروژه

4ـ1ـ اهداف فصل.. 55

4ـ2ـمحیط توسعه. 55

4ـ2ـ1ـ پردازنده های گرافیکی فعال شده CUDA.. 55

4ـ2ـ2ـ دستگاه درایور NVIDIA.. 57

4ـ2ـ3ـ کیت ابزار توسعه CUDA.. 57

فصل پنجم  آشنایی با CUDA C

5ـ1ـ اهداف فصل.. 62

5ـ2ـ اولین برنامه. 62

5-2-1-HELLO, WORLD.. 63

5ـ2ـ2ـ فرمان هسته ای.. 63

5ـ3ـ اولین برنامه دستگاه های جستجوگر. 68

5ـ4ـ خواص کاربردی دستگاه. 71

فصل ششم  برنامه نویسی موازی درCUDA C

6ـ1ـ اهداف این فصل.. 75

6ـ2ـ برنامه نویسی CUDA موازی.. 75

فصل هفتم  تعاون رشته ای

7ـ1ـ اهداف فصل.. 81

7ـ2ـ تقسیم بلوکهای موازی.. 81

7ـ2ـ1 مجموع برداری: ردوکس.... 82

7ـ2ـ2 موج دار کردنGPU با استفاده از رشته ها88

7ـ3 حافظه اشتراکی و همزمانسازی.. 94

7ـ3ـ1 ضرب نقطه ای.. 95

7ـ3ـ2 بیت مپ حافظه مشترک... 106

نتیجه گیری.. 110

فهرست منابع.. 112

فهرست شکل ها

شکل 1- 1 - مقایسه توان پردازشی خام پردازنده‌گرافیکی با پردازنده‌مرکزی.. 3

شکل1-2- مقایسه پهنای باند GPUو CPU.. 4

شکل 1- 3- نمودار مقایسه سرعت GPUها و CPUها در بدست اوردن پسورد فایل های RAR.. 6

شکل 1- 4- مقایسه سخت افزار GPUو CPU.. 7

شکل 1- 5- مدل تخصیص ترانزیستور برای GPUو CPU.. 7

جدول2-1- نقطه عطف توسعه تکنولوژی GPUها NVIDIA.. 14

شکل3- 1- معماری دستگاه کودا23

شکل3-2- گریدها، بلاک ها و تردها26

شکل3-3 - کامپایل JITو هدف گیری دستگاه یک برنامه کاربردی کودا34

شکل3- 4- مثالی از توزیع بلاک ها روی GPUهای با اندازه متفاوت.. 35

شکل3- 5- فضاهای حافظه دستگاه کودا و مکان فیزکی انها روی دستگاه. 35

شکل3- 6- سلسله مراتب حافظه کودا در ارتباط با تردهای کرنل.. 36

شکل3- 7- پایپلاین گرافیکی.. 38

شکل3- 8- مثال اجرا ناهمگن.. 39

شکل3- 9- جریان کنترل پایه ای کودا40

شکل3- 10- پشته نرم افزاری کودا41

شکل3- 11- مدل اجرایی یک برنامه کودا با سازمان نخ.. 43

شکل3- 12- معماری سیستم محاسباتی NVIDIA Tesla S1070. 49

شکل3- 13- پیکربندی کامل محاسباتی S1070. 50

شکل3- 14- معماری محاسبات GPUبا 512 هسته پردازنده کودا51

شکل3- 15- چند پردازندهای جریانی فرمی.. 53

شکل 3- 16- دو شیوه ممکن برای برنامه ای کردن GPUها (a) ترتیبی (b) چند نخی.. 54

شکل4ـ1 پردازنده های گرافیکی فعال شده با CUDA.. 56

شکل 4ـ2صفحه دانلود CUDA.. 58

جدول5-1 خواص دستگاه با CUDA.. 69

شکل6ـ1: جمع دوبردار. 76

شکل 7ـ1 ترتیب دو بعدی مجموعه ای از بلوک ها و رشته ها و رشته های صفر.85

شکل 7ـ2 یک سلسله مراتب دو بعدی ازبلوک ها و رشته های مورد استفاده در پردازش یک تصویر48 * 32 پیکسلی با استفاده از یک رشته در هر پیکسل.. 91

شکل 7ـ3 ثصویری از یک مثال موجGPU.. 94

شکل 7ـ4 یک مرحله از کاهش جمع.. 99

شکل 7ـ5 تصویر بعد از اضافه کردن همزمانسازی مناسب.109


خرید و دانلود پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای

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