پروژه پیاده سازی الگوریتم موازی با استفاده از کارتهای گرافیکی چند هسته ای پژوهش کامل در حوزه کامپیوتر و IT میباشد و در 7 فصل تنظیم شده است.این پروژه با معرفی واحد پردازش گرافیکی (GPU) به پیاده سازی الگوریتم موازی پرداخته است. شما میتوانید فهرست مطالب پروژه را در ادامه مشاهده نمایید.
پروژه بصورت فایل قابل ویرایش ورد(WORD) در 124 صفحه برای رشته کامپیوتر و IT در پایین همین صفحه قابل دانلود میباشد. شایسته یادآوری است که پروژه از ابتدا تا پایان ویرایش وتنظیم , سکشن بندی (section) ، نوشتن پاورقی (Footnote) و فهرست گذاری اتوماتیک کامل شده وآماده تحویل یا کپی برداری از مطالب مفید آن است.
در سال های اخیر، افزایش روز افزون عملکرد کارت های گرافیکی، محققین را به فکر بهره گیری از توان پردازشی آنها در کاربردهای غیر گرافیکی انداخته است. درهمین راستا شاخه جدیدی در علوم کامپیوتر به نام محاسبات با اهداف همه منظوره روی واحد GPU ایجاد شده است ، هدف فعالان این عرصه بهره گیری از کارت گرافیک به عنوان یک کمک پردازنده محاسباتی در برنامه های غیرگرافیکی و برنامه های عمومی است.ازاین رو از صنعت محاسباتی گرفته تا محاسبات موازی دچار تغییرات گسترده ای شده وعملیات انتقال تقریبا تمام کامپیوترهای مصرف کننده سال 2010 همراه با پردازنده های چند هسته ای صورت گرفته است صنعت رایانه ای در سراشیبى تند انقلاب محاسباتی موازی قرار دارد ،نتیجه اینکه در پی آن، تقریبا هر برنامه نویس مشتاق در آن نیاز به آموزش برنامه نویسی موازی دارد تا بتواند در علوم کامپیوتری به طور کامل موثر واقع شود. و در نتیجه CUDA C NVIDIA تا کنون به عنوان یکی از موفق ترین زبانهای عمل کرده است که تا به حال برای محاسبات موازی طراحی شده است. در این پایان نامه، ضمن بیان مقدمه ای از CUDA، تعدادی از دستورات زبان NVIDIA CUDA C معرفی خواهد شد.
واژه های کلیدی:کارت های گرافیکی،NVIDIA CUDA C، برنامه نویسی موازی،GPU، کودا
فهرست مطالب
1-2- مقایسه توانایی هایGPU باCPU.. 3
1-3- مقایسه سخت افزار GPU با CPU.. 6
1-4- فناوری های ATI و NVIDIA.. 7
2-4- محاسبات یکپارچه و GPU ها16
2-5- سیتم های محاسبات GPU.. 17
2-6- اکوسیستم محاسبات GPU.. 17
3-1- معماری محاسباتی تسلا.. 20
3-2- چند پردازندههای جریانی.. 20
3-5-2- تردها، بلاک ها و گریدها: تطبیق الگوریتم ها با مدل کودا23
3-5-4- معماری مجموعه دستور و اجرا نخ های موازی.. 33
3-5-7- مدل برنامه نویسی کودا37
3-5-8- یک مدل برنامه نویسی ناهمگن.. 38
3-5-12- کامپایل یک برنامه کودا46
3-5-13- اشکال زدایی یک برنامه کودا46
3-6- نگاشت به معماری تسلا.. 48
3-8- سیستم های محاسباتی NVIDIA Tesla S1070. 49
3-9-1- سلسله مراتب حافظه کش.... 51
3-9-3- چند پردازندههای جریانی.. 52
3-10- برنامه نویسی multi-GPU.. 53
4ـ2ـ1ـ پردازنده های گرافیکی فعال شده CUDA.. 55
4ـ2ـ2ـ دستگاه درایور NVIDIA.. 57
4ـ2ـ3ـ کیت ابزار توسعه CUDA.. 57
5ـ3ـ اولین برنامه دستگاه های جستجوگر. 68
فصل ششم برنامه نویسی موازی درCUDA C
6ـ2ـ برنامه نویسی CUDA موازی.. 75
7ـ2ـ1 مجموع برداری: ردوکس.... 82
7ـ2ـ2 موج دار کردنGPU با استفاده از رشته ها88
7ـ3 حافظه اشتراکی و همزمانسازی.. 94
7ـ3ـ2 بیت مپ حافظه مشترک... 106
فهرست شکل ها
شکل 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-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
جدول5-1 خواص دستگاه با CUDA.. 69
شکل 7ـ1 ترتیب دو بعدی مجموعه ای از بلوک ها و رشته ها و رشته های صفر.85
شکل 7ـ3 ثصویری از یک مثال موجGPU.. 94