بهبود کارایی پردازنده‌های گرافیکی از طریق به کارگیری مناسب کنترل‌کننده‌های حافظه

نویسندگان

1 دانشکده مهندسی کامپیوتر، دانشگاه صنعتی شریف، تهران، ایران

2 پژوهشگاه دانش های بنیادی، تهران، ایران

چکیده

امروزه ازپردازنده‌های گرافیکی به عنوان بستری مناسب برای پردازش‌ موازی همه منظوره استفاده می‌شود. روند پیکربندی پردازنده‌های گرافیکی در طول سال‌های گذشته به این شکل بوده است که همواره با افزایش ظرفیت پردازشی و زیاد شدن منابع رو تراشه‌ی پردازنده‌ گرافیکی ، پهنای باند آن نیز افزایش می‌یابد. در نگاه اول این نسبت مستقیم بین قدرت پردازنده‌ی گرافیکی و پهنای باند آن کاملاً منطقی به نظر می‌رسد. چرا که بارهای کاری به نسبت مقدار داده‌ای که از حافظه می‌خوانند، پردازش انجام می‌دهند. اما با نگاهی عمیق‌تر به بارهای کاری مختلف مشاهده می‌­کنیم که برای تعداد قابل توجهی از بارهای کاری میزان بهره‌وری پهنای باند بسیار پایین است. در حالی که بهره‌وری هسته‌های پردازشی و منابع روی تراشه‌ی پردازنده‌ی گرافیکی همچنان بالا است. بنابراین، برای همه‌ی بارهای کاری رعایت نسبت مستقیم بین قدرت پردازنده‌های گرافیکی و پهنای باند آن‌ها لازم نیست. در این پژوهش، ابتدا بر مبنای مشاهدات مذکور رویکرد جدیدی برای طراحی پردازنده‌های گرافیکی با قدرت پردازشی بالا و پهنای باند کمتر ارائه می‌شود و در ادامه، فرصت‌های برآمده برای استفاده از مساحت به دست آمده از کاهش پهنای باند، بررسی شده و روش‌­های مناسب استفاده از این مساحت ارائه می‌شود.

کلیدواژه‌ها

  • [1] NVIDIA Corporation. CUDA Programming Guide, V4.0.
  • [2] NVIDIA Corporation. CUDA Toolkit, 2012. Version 4.2 as of Sep. 2012, http://developer.nvidia.com/cuda/cuda-downloads.
  • [3] T. D. Han and T. S. Abdelrahman, “hiCUDA: High-level GPGPU programming,” IEEE Transactions on Parallel and Distributed Systems, vol. 22, no. 1, pp. 78-90, 2011.
  • [4] A. Sethia and S. Mahlke, “Equalizer: Dynamic tuning of gpu resources for efficient execution,” Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), IEEE Computer Society, pp. 647-658, 2014.
  • [5] D. B. Kirk and W. Hwu, “Programming massively parallel processors: a hands-on approach,” Morgan Kaufmann, 2012.
  • [6] H. Kim, R. Vuduc, S. Baghsorkhi, J. Choi, W. Hwu, “Performance analysis and tuning for general purpose graphics processing units (GPGPU),” Synthesis Lectures on Computer Architecture, vol. 7, no. 2, pp. 1-96, 2012.
  • [7] C.M. Wittenbrink, E. Kilgariff, and A. Prabhu, “Fermi GF100 GPU architecture,” IEEE Micro, vol. 31, no. 2, pp. 50-59, 2011.
  • [8] J. Leng, T. Hetherington, A. ElTantawy, S. Gilani, N. S. Kim, T. M. Aamodt, and V. J. Reddi, “GPUWattch: enabling energy optimizations in GPGPUs,” ACM SIGARCH Computer Architecture News, vol. 41, no. 3, pp. 487-498, 2013.
  • [9] J. Lim, N.B. Lakshminarayana, H. Kim, W. Song, S. Yalamanchili and W. Sung, “Power modeling for GPU architectures using McPAT,” ACM Transactions on Design Automation of Electronic Systems (TODAES), vol. 19, no. 3, pp. 1-24, 2014.
  • [10] S. Che, M. Boyer, J. Meng, D. Tarjan, J. W. Sheaffer, S. Lee, and K. Skadron, “Rodinia: A benchmark suite for heterogeneous computing,” IEEE International Symposium on Workload Characterization (IISWC), IEEE, pp. 44-54, 2009.
  • [11] J. A. Stratton, C. Rodrigues, I. Sung, N. Obeid, L. Chang, N. Anssari, G. D. Liu, and W. Hwu, “Parboil: A revised benchmark suite for scientific and commercial throughput computing,” Center for Reliable and High-Performance Computing, vol. 127, 2012.
  • [12] A. Bakhoda, G. L. Yuan, W. W. Fung, H. Wong, and T. M. Aamodt, “Analyzing CUDA workloads using a detailed GPU simulator,” IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), IEEE, pp. 163-174, 2009.
  • [13] M.H. Samavatian, M. Arjomand, R. Bashizade and H. Sarbazi-Azad, “Architecting the last-level cache for GPUs using STT-RAM technology,” ACM Transactions on Design Automation of Electronic Systems (TODAES), vol. 20, no. 4, pp. 1-24, 2015.
  • [14] A. Jog, O. Kayiran, A.K. Mishra, M.T. Kandemir, O. Mutlu, R. Iyer and C.R. Das, “Orchestrated scheduling and prefetching for GPGPUs,” In Proceedings of the 40th Annual International Symposium on Computer Architecture, pp. 332-343, 2013.
  • [15] A. Jog, O. Kayiran, N. Chidambaram Nachiappan, A.K. Mishra, M.T. Kandemir, O. Mutlu, R. Iyer and C.R. Das, “OWL: cooperative thread array aware scheduling techniques for improving GPGPU performance." ACM SIGPLAN Notices, vol. 48, no. 4, pp. 395-406, 2013.
  • [16] T.G. Rogers, M. OConnor, and T.M. Aamodt, “Cache-conscious wavefront scheduling,” In 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 72-83, IEEE, 2012.
  • [17] M. Gebhart, S.W. Keckler, B. Khailany, R. Krashinsky, and W.J. Dally, “Unifying primary cache, scratch, and register file memories in a throughput processor,” In 45th Annual IEEE/ACM International Symposium on Microarchitecture, pp. 96-106, IEEE, 2012.
  • [18] X. Liu, M. Mao, X. Bi, H. Li, and Y. Chen, “An efficient STT-RAM-based register file in GPU architectures,” In The 20th Asia and South Pacific Design Automation Conference, pp. 490-495, IEEE, 2015.
  • [19] H. Jeon, G.S. Ravi, N.S. Kim, and M. Annavaram, “GPU register file virtualization,” In Proceedings of the 48th International Symposium on Microarchitecture, pp. 420-432, 2015.

 

دوره 18، شماره 2
پاییز و زمستان
آذر 1399