Scientific computing workloads are compute-intensive. Especially, the dense linear algebra (DLA) computations are embarrassingly parallel in nature. Besides, these computations exhibit a high computation-to-communication ratio if written in terms of Level-3 basic linear algebra subprograms (BLASs). On the other hand, if not optimized appropriately, the DLA computations can incur significantly higher run-time than their optimized counterparts. Several architectures are explored to accelerate these computations. Some of the examples are multicore, manycore, field-programmable gate arrays, and coarse-grained reconfigurable architectures. For off-the-shelf platforms such as multicore and manycore architectures, a library-based approach is adopted where highly optimized BLAS is developed. This optimized software is then further used to develop more complex algorithms, such as LU and QR factorization, that belong to the linear algebra package (LAPACK). For multicore and manycore architectures, appropriate programming methodology is used to schedule BLAS and LAPACK kernels on these architectures. For reconfigurable architectures such as field-programmable gate arrays and coarse-grained reconfigurable architectures, hardware–software codesign is carried out to arrive at optimal power and performance for scientific computing workloads. This chapter discusses some of the software and hardware–software codesign techniques.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Architectures for Scientific Computing

  • Farhad Merchant

摘要

Scientific computing workloads are compute-intensive. Especially, the dense linear algebra (DLA) computations are embarrassingly parallel in nature. Besides, these computations exhibit a high computation-to-communication ratio if written in terms of Level-3 basic linear algebra subprograms (BLASs). On the other hand, if not optimized appropriately, the DLA computations can incur significantly higher run-time than their optimized counterparts. Several architectures are explored to accelerate these computations. Some of the examples are multicore, manycore, field-programmable gate arrays, and coarse-grained reconfigurable architectures. For off-the-shelf platforms such as multicore and manycore architectures, a library-based approach is adopted where highly optimized BLAS is developed. This optimized software is then further used to develop more complex algorithms, such as LU and QR factorization, that belong to the linear algebra package (LAPACK). For multicore and manycore architectures, appropriate programming methodology is used to schedule BLAS and LAPACK kernels on these architectures. For reconfigurable architectures such as field-programmable gate arrays and coarse-grained reconfigurable architectures, hardware–software codesign is carried out to arrive at optimal power and performance for scientific computing workloads. This chapter discusses some of the software and hardware–software codesign techniques.