دانلود رایگان ترجمه مقاله پردازش مشترک پرس و جو در کش برای معماریهای CPU-GPU جفت شده – ACM 2014
دانلود رایگان مقاله انگلیسی + خرید ترجمه فارسی | |
عنوان فارسی مقاله: |
پردازش مشترک پرس و جو در کش برای معماریهای CPU-GPU جفت شده |
عنوان انگلیسی مقاله: |
In-Cache Query Co-Processing on Coupled CPU-GPU Architectures |
|
مشخصات مقاله انگلیسی (PDF) | |
سال انتشار | 2014 |
تعداد صفحات مقاله انگلیسی | 12 صفحه با فرمت pdf |
رشته های مرتبط با این مقاله | مهندسی کامپیوتر |
گرایش های مرتبط با این مقاله | معماری سیستم های کامپیوتری، مهندسی سخت افزار |
ارائه شده از دانشگاه | دانشگاه فناوری نانیانگ |
رفرنس | دارد ✓ |
کد محصول | F1128 |
نشریه | ACM |
مشخصات و وضعیت ترجمه فارسی این مقاله (Word) | |
وضعیت ترجمه | انجام شده و آماده دانلود |
تعداد صفحات ترجمه تایپ شده با فرمت ورد با قابلیت ویرایش | 22 صفحه با فونت 14 B Nazanin |
ترجمه عناوین تصاویر و جداول | ترجمه نشده است ☓ |
ترجمه متون داخل تصاویر | ترجمه نشده است ☓ |
ترجمه متون داخل جداول | ترجمه نشده است ☓ |
درج تصاویر در فایل ترجمه | درج شده است ✓ |
درج جداول در فایل ترجمه | درج شده است ✓ |
منابع داخل متن | درج نشده است ☓ |
کیفیت ترجمه | کیفیت ترجمه این مقاله متوسط میباشد |
توضیحات | چند بخش از مقاله ترجمه نشده است |
فهرست مطالب |
چکیده
1- مقدمه
2- اصول مقدماتی و پیشینه
1- 2 معماریهای سیستم ناهمگن
2- 2 واسط برنامه نویسی یکپارچه
3- طراحی و پیاده سازی
1- 3 انگیزه ها
2- 3 طراحی و پیاده سازی
1- 2- 3 پیش واکشی
2- 2- 3 فشرده سازی داده ها
3- 2- 3 شکافت وسیله
4- مدل هزینه
1- 4 مدل مجرد (انتزاعی)
7- نتایج
|
بخشی از ترجمه |
چکیده
اخیراً، تعدادی طرح های پردازنده ظهور کرده است که در آنها CPU و GPU (واحد پردازش گرافیکی) در یک تراشه یکپارچه شده و سطح کش آخرین (LLC) را به اشتراک می گذارند. اما، پهنای باند حافظه اصلی چنین معماری های CPU-GPU جفت شده ای پائینتر ازGPU گسسته است. در نتیجه، پارادایم های (الگو) پردازش مشترک پرس و جوی GPU فعلی، شدیداً از توقف حافظه آسیب می بینند. در این مقاله، پارادایم جدید پردازش مشترک پرس و جو در کش برای پایگاههای داده پردازش تحلیلی آنلاین حافظه اصلی (OLAP) برروی معماریهای CPU-GPU جفت شده را پیشنهاد می کنیم. مخصوصاً، از پیش واکشی به کمک CPU برای به حداقل رساندن از دست رفتن اطلاعات کش در پردازش مشترک پرس و جوی GPU و از غیر فشرده سازی به کمک CPU برای بهبود عملکرد اجرای پرس و جو استفاده می کنیم. به علاوه، یک مکانیسم تطبیق هدایت شده با مدل هزینه برای توزیع حجم کار پیش واکشی، غیر فشرده سازی، و اجرای پرس و جو بین CPU و GPU، توسعه می دهیم. سپس نمونه اولیه سیستم را پیاده و آن را برروی دو AMD APU A8 و A10 جدید ارزیابی می کنیم. نتایج آزمایش نشان می دهد که 1) پردازش مشترک پرس و جو در کش، عملکرد پارادایم پردازش مشترک GPU پیشرفته را برروی A8 و A10 به ترتیب تا 30 و 33 درصد بهبود می بخشد؛ و 2) مکانیسم تطبیق توزیع حجم کار، عملکرد پرس و جو برروی A8 و A10 را به ترتیب 36 و 40 درصد بهبود می بخشد.
1- مقدمه
پارادایم پردازش مشترک پرس و جو برروی GPU، وسیله ای موثر جهت بهبود عملکرد پایگاههای داده حافظه اصلی برای OLAP است. در حال حاضر، اکثر سیستم ها بر مبنای معماریهای CPU-GPU هستند، که CPU و GPU ازطریق باس PCI-e نسبتاً آهسته ای به هم متصل شده اند. اخیراً، طرح هایی از پردازنده ظهور کرده است که در آنها CPU و GPU در یک تراشه باهم یکپارچه شده و LLC را به اشتراک می گذارند. به طور مثال، معماری واحد پردازش تسریع شده AMD (APU)، CPU و GPU را در یک تراشه یکپارچه کرده و اینتل، آخرین نسل پردازنده Ivy Bridge را در اواخر آوریل 2012، منتشر نمود. در مورد معماریهای ناهمگن در حال ظهور ، سرعت پائین PCI-e ، مسئله مهمی به شمار نمی رود. برای مکانیسم های پردازش داده جدید، معماری CPU-GPU جفت شده فراخوانده می شود. مطالعاتی در رابطه با طرح های مشارکتی و دانه ریز برای پردازش مشترک جستجو و حجم کارهای پردازش داده های دیگر انجام شده است ( مثلاً انبارهای کلید- مقدار و MapReduce).
علی رغم اثربخشی مطالعات قبلی پیرامون پردازش مشترک پرس و جو روی معماریهای جفت شده، در مطالعات قبلی، CPU و GPU هر دو برروی حجم کارهای همگن اجرا شدند. اما، به خاطر طراحی معماری منحصر به فرد معماریهای CPU-GPU جفت شده، چنین طرح های توزیع حجم کار همگنی می توانند مانع عملکرد پردازش مشترک پرس و جو روی GPU شوند. از طرف دیگر، قدرت GPU در معماری جفت شده کمتر از معماری گسسته است و اینکه در معماری جفت شده GPU( معمولاً DDR3) به حافظه اصلی با پهنای باند بسیار پائین تر از حافظه GPU گسسته دسترسی دارد (معمولاً ). این دو عامل منجر به استفاده کم از GPU در معماری جفت شده به خاطر توقف حافظه می گردند. طراحی GPU ذاتی مدل اجرای یک برنامه چند داده (SPMD) و طبیعت درست هسته های GPU، موجب می شود GPU در معماری جفت شده نسبت به توقف های حافظه حساس تر ظاهر شود. در این مقاله، نحوه کاهش توقف حافظه که GPU از آن رنج می برد را مورد پژوهش قرار داده و عملکرد پردازش مشترک پرس و جو روی معماری CPU-GPU جفت شده را بهبود می بخشیم. قابلیت محاسباتی GPU روی معماری های CPU-GPU جفت شده جدید، بالاتر از CPU است. به طور مثال، روی AMD APU A8 و A10، GFLOPS GPU 5 یا 6 برابر بالاتر از CPU است. اگر داده های ورودی در کش موجود باشند، آنگاه قابلیت محاسباتی خام بسیار خوب GPU منجر به سرعت بخشیدن بسیار مشابه می گردد. اما، به خاطر تاثیر فوق الذکر توقف حافظه بر پردازش مشترک GPU، زمانی که داده ها نمی توانند خودشان را با کش وفق دهند، آنگاه سرعت بخشیدن در حد پائین یعنی 2 است ( در بخش 1. 3 جزئیات بیشتری راجع به این مسئله مطرح شده است). بنابراین، سئوال طبیعی این است که چگونه می توان مطمئن شد که برای رهایی و آزاد نمودن توان GPU، مجموعه پردازش مشترک پرس و جوی عملی می تواند خود را با کش اندازه کند (برازش). در این مقاله، پارادایم جدید پردازش مشترک پرس و جودر کش برای پایگاههای داده حافظه اصلی روی معماریهای CPU-GPU جفت شده را پیشنهاد می کنیم. مخصوصاً، از پیش واکشی به کمک CPU، برای به حداقل رساندن از دست رفتن اطلاعات کش، و از طرح های غیر فشرده سازی به کمک GPU و CPU، برای بهبود عملکرد اجرای پرس و جو، استفاده می کنیم. مهم نیست غیر فشرده سازی درگیر باشد یا خیر، مهم این است که طرح پیشنهادی تضمین می کند که داده های ورودی برای پردازش مشترک پرس و جوی GPU، پیش واکشی شده اند. بنابراین، اجراهای GPU عمدتاً برروی داده های داخل کش انجام می شود، بدون اینکه از توقف حافظه آسیب ببیند. مخصوصاً، برخلاف توزیع همگن حجم کار در پارادایم های پردازش مشترک پرس و جوی قبلی، توزیع حجم کار فعلی، ناهمگن است: حال هسته CPU می تواند عملیات پیش واکشی حافظه، غیر فشرده سازی، و حتی پردازش پرس و جو را انجام دهد و GPU می تواند غیر فشرده سازی و پردازش پرس و جو را اجرا نماید. در اینجا یک مکانیسم تطبیق هدایت شده با مدل هزینه برای توزیع حجم کارپیش واکشی، غیر فشرده سازی و ارزیابی پرس و جو بین CPU و GPU نیز توسعه می دهیم. با شکافت وسیله، به تخصیص منابع دانه ریز دست می یابیم که CPU یا GPU را به واحدهای زمان بندی کوچکتری تقسیم می کند (با شیوه های بر مبنای نرم افزار یا زمان اجرای OpenCL). دراینجا نمونه اولیه ای از سیستم را پیاده و آن را برروی دو AMD APU جدید، یعنی A8 و A10 ارزیابی می کنیم. نتایج آزمایش نشان می دهد که 1) پردازش مشترک پرس و جو در کش می تواند عملکرد پردازش مشترک پرس و جوی GPU را برروی A8 و A10 به ترتیب تا 30 و 33 درصد بهبود دهد و 2)مدل هزینه پیشنهادی می تواند توزیع حجم کار مناسب را پیش بینی نماید و مکانیسم های تطبیق توزیع پیشنهادی عملکرد پرس و جورا 40- 36 درصد بهبود می بخشند. رئوس این مقاله به شرح ذیل است. در بخش 2، پیشینه و اصول مقدماتی معماریهای جفت شده و OpenCL ، در بخش 3، طراحی و پیاده سازی پردازش مشترک پرس و جو در کش و در بخش 4، مدل هزینه را معرفی می کنیم. در بخش 5، نتایج آزمایش را مطرح کرده، در بخش 6 کارهای مرتبط را مرور کرده و در بخش 7 نتایج مطرح می گردد. |
بخشی از مقاله انگلیسی |
Abstract Recently, there have been some emerging processor designs that the CPU and the GPU (Graphics Processing Unit) are integrated in a single chip and share Last Level Cache (LLC). However, the main memory bandwidth of such coupled CPU-GPU architectures can be much lower than that of a discrete GPU. As a result, current GPU query coprocessing paradigms can severely suffer from memory stalls. In this paper, we propose a novel in-cache query co-processing paradigm for main memory On-Line Analytical Processing (OLAP) databases on coupled CPU-GPU architectures. Specifically, we adapt CPU-assisted prefetching to minimize cache misses in GPU query co-processing and CPU-assisted decompression to improve query execution performance. Furthermore, we develop a cost model guided adaptation mechanism for distributing the workload of prefetching, decompression, and query execution between CPU and GPU. We implement a system prototype and evaluate it on two recent AMD APUs A8 and A10. The experimental results show that 1) in-cache query co-processing can effectively improve the performance of the state-of-the-art GPU co-processing paradigm by up to 30% and 33% on A8 and A10, respectively, and 2) our workload distribution adaption mechanism can significantly improve the query performance by up to 36% and 40% on A8 and A10, respectively. 1 Introduction Query co-processing paradigm on GPUs has been an effective means to improve the performance of main memory databases for OLAP (e.g., [15, 17, 22, 28, 25, 13, 30, 29]). Currently, most systems are based on discrete CPU-GPU architectures, where the CPU and the GPU are connected via the relatively slow PCI-e bus. Recently, some emerging processor designs that the CPU and the GPU are integrated in a single chip and share LLC. For example, the AMD Accelerated Processing Unit (APU) architecture integrates CPU and GPU in a single chip, and Intel released their latest generation Ivy Bridge processor in late April 2012. On those emerging heterogeneous architectures, the low speed of PCIe is no longer an issue. Coupled CPU-GPU architectures call for new data processing mechanisms. There have been studies on more collaborative and fine-grained schemes for query co-processing [19, 38] and other data processing workloads (e.g., key-value stores [21] and MapReduce [7]). Despite the effectiveness of previous studies on query coprocessing on coupled architectures, both CPU and GPU execute homogeneous workloads in previous studies [19, 7, 38, 21]. However, due to the unique architectural design of coupled CPU-GPU architectures, such homogeneous workload distribution schemes can hinder query co-processing performance on the GPU. On the one hand, the GPU in the coupled architecture is usually less powerful than the one in the discrete architecture. On the other hand, the GPU in the coupled architecture accesses main memory (usually DDR3), which has a much lower bandwidth than the discrete GPU memory (usually GDDR5). These two factors lead to severe underutilization of the GPU in the coupled architecture because of memory stalls. The inherent GPU design of Single Program Multiple Data (SPMD) execution model and the in-order nature of GPU cores make the GPU in the coupled architecture more sensitive to memory stalls. In this paper, we investigate how to reduce memory stalls suffered by the GPU and further improve the performance of query co-processing on the coupled CPU-GPU architecture. On the recent coupled CPU-GPU architectures, the computational capability of the GPU is still much higher than that of the CPU. For example, the GPU can have 5 and 6 times higher Giga Floating Point Operations per Second (GFLOPS) than the CPU on AMD APUs A8 and A10, respectively. The superb raw computational capability of the GPU leads to a very similar speedup if the input data is in cache. However, due to the above-mentioned impact of memory stalls on the GPU co-processing, the speedup is as low as 2 when the data cannot fit into cache (more detailed results can be found in Section 3.1). Thus, the natural question is whether we can and how to ensure that the working set of query co-processing can fit in the cache as much as possible to fully unleash the GPU power. In this paper, we propose a novel in-cache query co-processing paradigm for main memory databases on coupled CPU-GPU architectures. Specifically, we adapt CPU-assisted prefetching to minimize the cache misses from the GPU and CPUassisted decompression schemes to improve query execution performance. No matter whether or not the decompression is involved, our scheme ensures that the input data to the GPU query co-processing has been prefetched. Thus, the GPU executions are mostly on in-cache data, without suffering from memory stalls. Specifically, unlike homogeneous workload distributions in previous query co-processing paradigms [19, 7], our workload distribution is heterogeneous: a CPU core can now perform memory prefetching, decompression, and even query processing, and the GPU can now perform decompression and query processing. We further develop a cost model guided adaptation mechanism for distributing the workload of prefetching, decompression, and query evaluations between the CPU and the GPU. Finegrained resource allocation is achieved by device fission that divides the CPU or the GPU into smaller scheduling units (either by OpenCL runtime or our software-based approaches). We implement a system prototype and evaluate it on two recent AMD APUs A8 and A10. The experimental results show that 1) in-cache query co-processing is able to effectively improve the performance of GPU query co-processing by up to 30% and 33% on A8 and A10, respectively, and 2) our cost model can effectively predict a suitable workload distribution, and our distribution adaption mechanisms significantly improve the query performance by 36-40%. The remainder of this paper is organized as follows. In Section 2, we introduce the background and preliminary on coupled architectures and OpenCL. In Section 3, we elaborate the design and implementation of in-cache query coprocessing, followed by the cost model in Section 4. We present the experimental results in Section 5. We review the related work in Section 6 and conclude in Section 7. |