首页
/ AdaptiveCpp 25.02发布:跨架构计算的重大升级

AdaptiveCpp 25.02发布:跨架构计算的重大升级

2025-06-29 05:14:32作者:薛曦旖Francesca

项目简介

AdaptiveCpp(原名为hipSYCL)是一个创新的异构计算框架,它通过扩展标准C++实现了跨平台、跨架构的并行计算能力。该项目最显著的特点是能够将同一份代码编译后运行在CPU、NVIDIA GPU、AMD GPU和Intel GPU等多种硬件架构上,大大简化了异构计算的开发流程。

核心更新:PCUDA编程模型

AdaptiveCpp 25.02版本最引人注目的特性是引入了全新的PCUDA(Portable CUDA)编程模型。这一创新使得开发者能够:

  1. 直接重用现有CUDA/HIP代码:开发者不再需要将CUDA或HIP代码完全重写为SYCL,可以直接使用原有代码库。

  2. 真正的跨架构支持:PCUDA编译后的单一二进制文件可以自动适配多种硬件架构,包括CPU、NVIDIA GPU、AMD GPU和Intel GPU。

  3. 与其他模型无缝集成:PCUDA可以与SYCL和C++标准并行计算模型混合使用,为开发者提供极大的灵活性。

  4. 性能优化:测试数据显示,在某些情况下,PCUDA的性能甚至超过了原生CUDA/HIP编译器。

技术实现亮点

PCUDA并非简单的SYCL封装层,而是AdaptiveCpp编译器对CUDA/HIP编程模型的原生支持。这种设计带来了几个关键优势:

  1. 低开销:由于是原生实现,避免了额外的抽象层带来的性能损耗。

  2. 编译效率:相比SYCL,PCUDA采用更接近C语言的实现方式,显著减少了编译时间。

  3. 内核提交延迟:当前版本的PCUDA比SYCL具有更低的内核提交延迟。

跨平台支持增强

25.02版本在跨平台支持方面也有重大改进:

  1. LLVM集成:现在可以将AdaptiveCpp直接构建到LLVM工具链中,这带来了更稳定的Windows和macOS支持。

  2. Windows二进制分发:项目现在提供预编译的Windows版本,大大降低了入门门槛。

  3. macOS支持:通过LLVM集成方式,macOS平台现在可以完整使用通用JIT编译器功能。

性能表现

从官方提供的基准测试数据来看:

  1. 在NVIDIA RTX A5000上,AdaptiveCpp的PCUDA模式性能与原生CUDA相当,某些情况下甚至略优。

  2. 在AMD Radeon Pro VII上,PCUDA模式性能接近原生HIP实现。

  3. 在Intel UHD630上,通过OpenCL后端,AdaptiveCpp展示了良好的跨架构兼容性。

其他重要改进

  1. NUMA节点支持:新增扩展允许在CPU设备上分配USM内存时指定NUMA节点。

  2. LLVM版本支持:新增对LLVM 19和20的支持。

  3. 稳定性提升:包含大量错误修复和性能优化。

应用场景建议

PCUDA特别适合以下场景:

  1. 已有CUDA/HIP代码库需要跨平台运行
  2. 需要逐步迁移现有CUDA/HIP代码
  3. 对编译时间敏感的项目
  4. 需要更低内核提交延迟的应用
  5. 偏好C风格API而非C++抽象的开发团队

总结

AdaptiveCpp 25.02通过引入PCUDA编程模型,为异构计算领域带来了新的可能性。它不仅在保持性能的同时简化了跨平台开发,还通过LLVM集成增强了各平台的支持。对于需要在多种硬件架构上部署高性能计算应用的开发者来说,这无疑是一个值得关注的重要更新。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
138
188
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
94
15
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
187
266
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
893
529
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.09 K
0
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
372
387
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
337
1.11 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
401
377