高性能计算系统架构师、异构计算应用开发人员、数据中心优化工程师。
理解异构计算系统的组成与任务划分原则。
掌握 OpenCL、SYCL、OpenACC 等跨平台异构编程模型。
能够设计 CPU 与 GPU 协同工作的计算流程并进行负载均衡优化。
异构计算概述:异构计算的定义与发展趋势;CPU 与 GPU 在异构系统中的角色分工;常见的异构计算架构(CPU+GPU、CPU+FPGA)。
异构编程模型:异构编程的标准与选择;CUDA 与 OpenCL 的异同;SYCL 与 C++ 标准化的融合;OpenACC 指令式编程。
OpenCL 编程:OpenCL 平台模型与执行模型;OpenCL C 内核语言;内存对象与缓冲区的管理;命令队列与事件。
SYCL 编程:SYCL 的单源编程优势;SYCL 的队列与处理器;缓冲区与访问器;与 CUDA 的代码对比。
OpenACC 编程:OpenACC 指令式编程的优势;计算构造与循环构造;数据管理(复制、创建、更新);性能调优指南。
任务划分与负载均衡:异构系统中的任务划分策略(静态划分、动态调度);负载不均衡的原因与解决方案;异构任务调度器的设计。
异构内存管理:统一内存(Unified Memory)与显式管理的权衡;内存传输与计算的重叠;异构系统的数据一致性维护。
多 GPU 与混合计算:多 GPU 任务的划分;CPU 与 GPU 协同计算的流水线设计;CPU 参与非计算密集型任务的优化。
应用案例分析:分子动力学模拟的异构实现;计算流体力学的 CPU/GPU 协同求解;深度学习训练的异构加速。
性能分析工具:跨平台性能分析工具的使用;CPU 与 GPU 之间的同步开销分析;数据传输热点的识别。
功耗与能效优化:异构系统的功耗管理(DVFS);任务卸载策略对能效的影响;绿色计算中的异构优化。
综合实战项目:选取典型应用(如 N 体模拟、卷积计算),使用 OpenCL 或 SYCL 实现 CPU/GPU 异构版本,并进行任务划分与性能优化。