上传者: cpongm
|
上传时间: 2025-04-21 22:09:04
|
文件大小: 4.85MB
|
文件类型: PDF
异构嵌入式系统的自动并行化与分布式、并行和集群计算
异构嵌入式系统的自动并行化是指在异构嵌入式系统中实现自动并行化的技术,旨在提高系统的计算性能和效率。该技术通过在异构嵌入式系统中部署多核CPU、GPU、FPGA和Intel Xeon Phi等加速器,实现分布式、并行和集群计算。
在异构嵌入式系统中,GPU可以实现显着的性能提升,但是使用低级API(例如,CUDA、OpenCL)需要重写顺序代码,对GPU架构有很好的掌握另一方面,基于指令的编程模型(例如OpenACC、OpenMP)提供了底层硬件的高级抽象,从而简化了代码维护并提高了生产力。
OpenACC/OpenMP编译器的主要任务是从用户提供的指令中应用必要的优化,并生成利用GPU架构的高效代码。但是,生成的代码可能无法实现预期的加速,因为编译器没有整个应用程序的完整视图因此,使用OpenACC/OpenMP加速的代码与使用CUDA/OpenCL手动优化的代码之间通常存在显著的性能差异。
为了帮助程序员在GPU上使用基于指令的模型有效地加速他们的传统顺序代码,我们研究了OpenACC和OpenMP编程模型,并提出了一种有效的基于指令的应用程序并行化方法。我们的应用程序移植经验表明,仅仅插入OpenMP/OpenACC卸载指令来通知编译器必须编译特定代码区域以供GPU执行是不够的。将卸载指令与循环并行化结构相结合是非常必要的。
在选择好的循环时间表方面,我们揭示了挑战。编译器选择的默认循环时间表可能不会产生最佳性能,因此用户必须手动尝试不同的循环时间表以提高性能。
此外,我们还讨论了GPU代码中的指针别名问题,并提出了两个静态分析工具,自动执行源代码级别的类型限定符插入和标量提升,以解决别名问题。
异构嵌入式系统的自动并行化是指在异构嵌入式系统中实现自动并行化的技术,旨在提高系统的计算性能和效率。该技术通过在异构嵌入式系统中部署多核CPU、GPU、FPGA和Intel Xeon Phi等加速器,实现分布式、并行和集群计算,并使用基于指令的编程模型简化代码维护和提高生产力。