资讯动态

26年奇点智能大会分享SYCL 与 C++ 异构编程:从 OpenMP 到机器学习标准的演进之路

发布时间:2026/9/3 3:35:57 来源:尧图企业网站定制
演讲嘉宾Michael Wong奇点智能研究院首席科学家C 标准委员会机器学习组主席技术方向SYCL 异构编程、C 并行计算、机器学习标准化大会2026 C 及系统软件技术大会 · 北京一、引言站在标准委员会顶层的异构编程布道者在 C 标准委员会的众多工作组中很少有人能同时横跨嵌入式SG14、机器学习SG19与语言方向演化三个关键委员会。Michael Wong 正是这样一位传奇人物——他身兼 C 嵌入式开发委员会 SG14 主席、机器学习委员会 SG19 主席以及 C 语言方向演化委员会主席三重身份同时还担任 C 标准委员会加拿大代表团团长。更关键的是他是SYCL 标准的领导者——这套面向 GPU 异构编程的 C 语言扩展正成为机器学习框架底层性能优化的关键技术底座。在加入奇点智能研究院之前他曾任 Codeplay 研发副总裁、OpenMP 组织的 CEO并在 IBM 领导过 XL C 与 XL C 编译器的研发。二、异构编程的四十年从指令集到单源编程要理解 SYCL 的价值先要看清异构编程范式的演进脉络。时代代表技术编程模型核心痛点1990sOpenMP共享内存线程只覆盖 CPU跨设备乏力2000sCUDA / OpenCL设备专用内核主机/设备代码分离调试困难2010sOpenACC指令制导移植性差生态封闭2017SYCL单源 C统一源码标准 C 工具链传统 GPU 编程如 CUDA、OpenCL要求开发者维护两套代码主机端host与设备端device二者通过显式的数据拷贝与内核启动交互。这带来的问题不仅是代码量翻倍更在于调试器、编译器、静态分析工具都难以跨域工作。SYCL 的答案是单源编程设备内核与主机逻辑写在同一个 C 源文件里用标准 C 工具链编译。// SYCL 单源编程一个源文件同时包含主机逻辑与设备内核#includesycl/sycl.hpp#includevectorintmain(){constsize_t N1024;std::vectorfloata(N,1.0f),b(N,2.0f),c(N,0.0f);// 设备队列 缓冲区隐式管理数据搬移sycl::queue q{sycl::default_selector_v};{sycl::bufferfloatbuf_a(a.data(),sycl::range1{N});sycl::bufferfloatbuf_b(b.data(),sycl::range1{N});sycl::bufferfloatbuf_c(c.data(),sycl::range1{N});q.submit([](sycl::handlerh){autoacc_abuf_a.get_accesssycl::access::mode::read(h);autoacc_bbuf_b.get_accesssycl::access::mode::read(h);autoacc_cbuf_c.get_accesssycl::access::mode::write(h);h.parallel_for(sycl::range1{N},[](sycl::id1i){acc_c[i]acc_a[i]acc_b[i];});});}q.wait();return0;}这段代码的要点在于parallel_for内核是标准 C lambda可以被普通 C 编译器解析、语法检查而运行时系统负责把工作分派到 GPU、CPU 或 FPGA。三、SYCL 的核心设计抽象层次与可移植性SYCL 之所以能在异构编程领域站稳脚跟源于它精心设计的抽象层次。3.1 队列与执行模型SYCL 采用队列Queue作为执行单元开发者向队列提交命令组Command Group运行时负责调度到具体设备。这种模型天然支持异步执行与多设备协同。3.2 数据流与依赖SYCL 用缓冲区/访问器Buffer/Accessor模型描述数据依赖运行时据此自动推导任务图DAG无需开发者手动处理同步。// 显式 USM统一共享内存模型贴近传统指针编程float*psycl::malloc_sharedfloat(N,q);q.parallel_for(N,[](sycl::id1i){p[i]p[i]*2.0f;}).wait();sycl::free(p,q);USMUnified Shared Memory提供了与 CUDA 统一内存类似的指针语义降低了从传统 C 迁移的心智成本。3.3 与 OpenMP 的关系作为前 OpenMP CEOMichael Wong 对两者关系有独到见解OpenMP 是指令制导的并行模型优势是增量式改造存量代码SYCL 是库语言的异构模型优势是细粒度控制与跨设备移植。二者并非替代而是针对不同工程场景的互补工具。四、机器学习标准化SG19 的野心Michael Wong 领导的SG19机器学习委员会是 C 标准委员会中面向 AI 时代的重要布局。它的核心命题是C 如何在机器学习基础设施中扮演系统级角色SG19 关注的技术方向包括线性代数接口为std::linalg等提案提供标准化基础让 BLAS/LAPACK 级别的运算成为标准库能力图执行模型探索标准化的计算图表示对齐 ML 框架的需求异构执行把 SYCL 的执行模型经验引入标准为跨设备计算提供语言级支持SG19 工作项目标现状std::linalg标准线性代数库已进入 C26 提案通道std::mdspan多维数组视图C23 已落地图执行标准化计算图表示早期探索异构执行跨设备语言支持依赖 SYCL 生态这些工作揭示了一个趋势机器学习正在从框架的领地走向语言的领地而 C 作为系统软件的基石语言必须为 AI 基础设施提供原生支持。五、编译器工程从 IBM XL 到 AI 底层优化Michael Wong 在 IBM 期间领导 XL C/XL C 编译器的开发这段经历让他对编译器如何影响性能有深刻体感。对于 PyTorch、TensorFlow 等框架的底层性能优化编译器扮演着关键角色算子融合把多个 kernel 合并为一次访存减少内存带宽压力向量化把标量运算转为 SIMD充分利用硬件算力布局优化根据访存模式调整数据布局提升缓存命中率异步流水重叠计算与通信隐藏延迟这些优化思想正是 SYCL 与 C 编译器在 AI 时代的价值所在——框架负责表达计算意图编译器负责把意图高效地映射到硬件。六、对 C 开发者的启示对于中文技术社区的 C 开发者Michael Wong 的分享带来三点启示拥抱异构单一 CPU 的时代已经过去学会用 SYCL 或 OpenMP 表达并行是基本功关注标准演化C26 的契约、Modules 等新特性正在重塑系统编程标准委员会的动向值得持续追踪理解编译器性能优化不能停留在猜要理解编译器如何翻译代码、如何做数据流分析七、SYCL 生态与行业落地SYCL 并非停留在标准层面的纸面技术其生态已在多个关键领域落地。生态角色代表实现落地场景Intel oneAPIDPC 编译器数据中心、HPCCodeplay ComputeCppSYCL 1.2.1 实现早期 GPU 通用计算AdaptiveCpp开源 SYCL 实现跨 NVIDIA/AMD/Intel 硬件框架后端TensorFlow / PyTorch机器学习底层算子在机器学习领域SYCL 的典型应用是为 TensorFlow、PyTorch 提供异构算子后端框架层用统一算子表达计算SYCL 负责把算子高效映射到 GPU、FPGA 等加速器上。这让国产加速器厂商能以较低成本接入主流 ML 框架生态。对于自动驾驶等时延敏感场景SYCL 的统一内存模型与异步队列也能有效支撑感知、规划等环节的异构计算需求。八、总结从 OpenMP 到 SYCL从 IBM XL 编译器到 C 机器学习标准Michael Wong 的职业生涯几乎完整覆盖了异构编程与语言标准化的演进历程。在 AI 基础设施重要性日益凸显的今天他带来的不仅是 SYCL 的技术细节更是一个站在标准顶层看技术趋势的独特视角。2026 年 C 及系统软件技术大会上他将与中文技术社区分享这套横跨语言、编译器与异构计算的系统思考。大会信息2026 奇点智能技术大会 C 及系统软件技术大会时间2026 年 11 月 20-21 日地点中国·北京万达文华酒店参会报名https://boolan.com/enroll/c1051/event/1162?channelseo立即报名与 C 标准委员会核心专家面对面交流

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价