LuisaGroup/LuisaCompute
High-Performance Rendering Framework on Stream Architectures
解决的问题
LuisaCompute 是一个高性能、跨平台的计算框架,旨在弥合统一性、可编程性和性能之间的差距。开发者只需编写一次计算内核,即可在 CUDA、DirectX、Metal 和 CPU 等多种硬件后端上运行,无需为每个平台编写特定的着色器代码。
工作原理
该框架由三个主要组件构成:
- 嵌入式领域特定语言(DSL): 使用嵌入在现代 C++ 中的 DSL,允许用户使用 C++ 语法编写内核。通过元编程和操作符重载,将内核追踪为抽象语法树(AST),然后通过 JIT 编译生成平台相关的着色器源代码。
- 统一运行时: 一个抽象的运行时层,作为高层前端接口与底层后端 API 之间的桥梁。提供资源包装器(静态类型 C++ 对象),用于管理内存和调度命令,自动探测依赖关系以优化硬件利用率。
- 多种后端: 专用后端将 AST 和中间命令转换为 CUDA、Metal、DirectX 以及由 Rust 实现的 CPU 回退的原生内核启动代码。
适用人群
主要面向需要跨平台兼容性但又不牺牲性能的高性能图形应用、渲染引擎或通用流处理软件开发者。
主要亮点
- 统一编写: 主机端逻辑和设备端内核均使用现代 C++ 编写。
- 跨平台支持: 提供 CUDA、DirectX、Metal 和 CPU 的原生后端。
- Python 前端: 提供 Python 接口,便于访问框架功能。
- 自动微分: 支持计算任务的自动微分。
- 资源管理: 高级包装器消除了资源处理和命令提交的样板代码。
相关
- 项目
- 项目
- 项目
- 项目
- 项目