Xử lý đa luồng song song và lập lịch trên nền tảng Xeon+FPGA đa dạng

Andrés Rodríguez1, Angeles Navarro1, Rafael Asenjo1, Francisco Corbera1, Rubén Gran2, Darío Suárez2, Jose Nunez-Yanez3
1Department of Computer Architecture, Universidad de Málaga, Andalucía Tech, Málaga, Spain
2Computer Architecture Group, Universidad de Zaragoza, Zaragoza, Spain
3Department of Electrical and Electronic Engineering, University of Bristol, Bristol, UK

Tóm tắt

Việc tính toán đa dạng, khai thác khả năng đồng xử lý đồng thời với các loại thiết bị khác nhau, đã được chứng minh là hiệu quả trong việc tăng cường hiệu suất và giảm tiêu thụ năng lượng. Trong bài báo này, chúng tôi mở rộng một khung lập lịch được đóng gói trong một mẫu C++ cấp cao, được phát triển trước đó cho các chip đa dạng bao gồm các lõi CPU và GPU, tới các nền tảng hiệu năng cao mới cho trung tâm dữ liệu, bao gồm một cấu trúc FPGA nhất quán bộ nhớ đệm và các tài nguyên CPU đa lõi. Mục tiêu của chúng tôi là đánh giá tính phù hợp của khung làm việc này với các nền tảng dựa trên FPGA mới này, xác định các lợi ích và hạn chế về hiệu suất. Chúng tôi nhắm tới bộ xử lý HARP tiên tiến nhất bao gồm 14 lõi Xeon cao cấp được kết nối chặt chẽ với một thiết bị FPGA nằm trong cùng một gói. Chúng tôi chọn tám bài kiểm tra từ miền tính toán hiệu năng cao đã được chuyển đổi và tối ưu hóa cho nền tảng đa dạng này. Kết quả cho thấy rằng một bộ lập lịch động và thích ứng, khai thác khả năng xử lý đồng thời giữa các thiết bị có thể cải thiện hiệu suất lên tới một yếu tố 8× so với các giải pháp thay thế tốt nhất chỉ sử dụng các lõi CPU hoặc cấu trúc FPGA. Hơn nữa, đề xuất của chúng tôi đạt được mức cải thiện lên tới 15% và 37% so với các giải pháp đa dạng tốt nhất được tìm thấy với các bộ lập lịch động và tĩnh, tương ứng.

Từ khóa

#tính toán đa dạng #lập lịch #hiệu suất #FPGA #Xeon #tối ưu hóa

Tài liệu tham khảo

Auerbach J, Bacon DF, Cheng P, Rabbah R (2010) Lime: a java-compatible and synthesizable language for heterogeneous architectures. SIGPLAN Not 45(10):89–108 Bacon D, Rabbah R, Shukla S (2013) FPGA programming for the masses. Queue 11(2):40:40–40:52. https://doi.org/10.1145/2436696.2443836 Bell N, Garland M (2009) Implementing sparse matrix-vector multiplication on throughput-oriented processors. In: Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis, SC’ 09 Belviranli M, Bhuyan L, Gupta R (2013) A dynamic self-scheduling scheme for heterogeneous multiprocessor architectures. ACM Trans Archit Code Optim 9(4):57 Che S, Boyer M, Meng J, Tarjan D, Sheaffer JW, Lee S, Skadron K (2009) Rodinia: a benchmark suite for heterogeneous computing. In: 2009 IEEE International Symposium on Workload Characterization (IISWC), pp 44–54 Corp I (2016) Intel FPGA SDK for OpenCL, best practices guide. https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/opencl-sdk/aocl-best-practices-guide.pdf. Accessed 17 June 2019 Corporation I (2014) Monte carlo pricing of asian options on FPGAs using OpenCL. https://www.altera.com/support/support-resources/design-examples/design-software/opencl/black-scholes.html. Accessed 17 June 2019 Dávila Guzmán MA, Nozal R, Gran Tejero R, Villarroya-Gaudó M, Suárez Gracia D, Bosque JL (2019) Cooperative CPU, GPU, and FPGA heterogeneous execution with Engine CL. J Supercomput 75(3):1732–1746 Gómez-Luna J, El Hajj I, Chang LW, Garcia-Flores V, Garcia de Gonzalo S, Jablin T, Pena AJ, Hwu Wm (2017) Chai: collaborative heterogeneous applications for integrated-architectures. In: 2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS) Huang W, Ghosh S, Velusamy S, Sankaranarayanan K, Skadron K, Stan MR (2006) Hotspot: a compact thermal modeling methodology for early-stage VLSI design. IEEE Trans Very Large Scale Integr Syst 14(5): 501–513 Koeplinger D, Prabhakar R, Zhang Y, Delimitrou C, Kozyrakis C, Olukotun K (2016) Automatic generation of efficient accelerators for reconfigurable hardware. In: 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), pp 115–127 Krommydas K, Sasanka R, c Feng W (2016) Bridging the FPGA programmability-portability gap via automatic OpenCL code generation and tuning. In: 2016 IEEE 27th International Conference on Application-specific Systems, Architectures and Processors (ASAP), pp 213–218 Kulkarni M, Burtscher M, Cascaval C, Pingali K (2009) Lonestar: a suite of parallel irregular programs. In: 2009 IEEE International Symposium on Performance Analysis of Systems and Software, pp 65–76 Lederer E (2014) Cross-device NBody simulation sample. https://software.intel.com/en-us/articles/opencl-cross-devices-nbody-simulation-sample. Accessed 17 June 2019 Li Z, Liu L, Deng Y, Yin S, Wang Y, Wei S (2017) Aggressive pipelining of irregular applications on reconfigurable hardware. In: 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA), pp 575–586 McIntosh-Smith S, Price J, Sessions RB, Ibarra AA (2015) High performance in silico virtual drug screening on many-core processors. Int J High Perform Comput Appl 29(2):119–134 Navarro A, Corbera F, Rodriguez A, Vilches A, Asenjo R (2019) Heterogeneous parallel\_for template for CPU-GPU chips. Int J Parallel Programm 47:213–233 Navarro A, Vilches A, Corbera F, Asenjo R (2014) Strategies for maximizing utilization on multi-CPU and multi-GPU heterogeneous architectures. J Supercomput 70(2):756–771 Nunez-Yanez J, Amiri S, Hosseinabady M, Rodríguez A, Asenjo R, Navarro A, Suarez D, Gran R (2018) Simultaneous multiprocessing in a software-defined heterogeneous FPGA. The J Supercomput. https://doi.org/10.1007/s11227-018-2367-9 Oguntebi T, Olukotun K (2016) Graphops: a dataflow library for graph analytics acceleration. In: Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pp 111–117. ACM Prabhakar R, Koeplinger D, Brown KJ, Lee H, De Sa C, Kozyrakis C, Olukotun K (2016) Generating configurable hardware from parallel patterns. SIGOPS Oper Syst Rev 50(2):651–665. https://doi.org/10.1145/2954680.2872415 Remis L, Garzarán MJ, Asenjo R, Navarro AG (2018) Exploiting social network graph characteristics for efficient BFS on heterogeneous chips. J Parallel Distrib Comput 120:282–294. https://doi.org/10.1016/j.jpdc.2017.11.003 Rudolph D, Polychronopoulos C (1989) An efficient message-passing scheduler based on guided self scheduling. In: Proceedings of the 3rd International Conference on Supercomputing, ICS’89 https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01173-opencl.pdf. Accessed 17 June 2019 Sun Y, Gong X, Ziabari AK, Yu L, Li X, Mukherjee S, Mccardwell C, Villegas A, Kaeli D (2016) Hetero-mark, a benchmark suite for CPU-GPU collaborative computing. In: Intl. Symp. on Workload Characterization (IISWC), pp 1–10 Umuroglu Y, Morrison D, Jahre M (2015) Hybrid breadth-first search on a single-chip FPGA-CPU heterogeneous platform. Int Conf Field Programm Log Appl. https://doi.org/10.1109/FPL.2015.7293939 Vilches A, Asenjo R, Navarro A, Corbera F, Gran R, Garzaran MJ (2015) Adaptive partitioning for irregular applications on heterogeneous CPU-GPU chips. Procedia Comput Sci 51:140–149 Wang Z, He B, Zhang W, Jiang S (2016) A performance analysis framework for optimizing OpenCL applications on FPGAs. In: 2016 IEEE International Symposium on High Performance Computer Architecture (HPCA), pp 114–125 Windh S, Ma X, Halstead RJ, Budhkar P, Luna Z, Hussaini O, Najjar WA (2015) High-level language tools for reconfigurable computing. Proc IEEE 103(3):390–408. https://doi.org/10.1109/JPROC.2015.2399275 Zhou S, Prasanna VK (2017) Accelerating graph analytics on CPU-FPGA heterogeneous platform. In: 2017 29th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), pp 137–144. https://doi.org/10.1109/SBAC-PAD.2017.25