技术栈与选型

Hahaha 项目在设计之初就明确了“教育优先”与“性能平衡”的目标,因此在技术选型上非常克制且现代。

核心语言:C++23

我们选择了最新的 C++23 标准。

  • 为什么要这么新? C++23 引入了增强的模板元编程能力(Concepts)、std::stacktrace 等特性,能更优雅地表达张量运算并辅助调试。
  • 教育意义:展示现代 C++ 如何解决高性能计算中的复杂性,避免 C 风格代码的堆砌。

构建系统:Meson + Ninja

项目采用 Meson 构建系统:

  • 可读性meson.build 文件逻辑清晰,极大降低了贡献者理解构建流程的门槛。
  • 速度:Ninja 后端提供极快的增量编译体验。

核心依赖 (Extern Libs)

项目尽量减少重型依赖,仅引入以下关键组件:

  • GoogleTest (GTest):确保每一个数学算子都有完备的单元测试。
  • ImGui + GLFW:用于 MLVisualizer,提供实时的训练曲线和参数分布展示。
  • CUDA 13.0 (预留):为后期 GPU 加速预留架构接口。

基础设施

  • Docker/Devcontainer:提供标准化的 C++23 编译环境。
  • clang-format/clang-tidy:通过 format.sh 等脚本强制执行代码风格。