跳转至

第 0 章:安装鳄霸

在编写你的第一个内核之前,需要先将鳄霸编译器安装到你的机器上。本章将介绍系统依赖、从源码构建以及验证安装。

系统要求

你需要一个支持 C++17 的编译器和两个解析器生成工具:

依赖项 最低版本
GCC 8.1+(或 Clang 6+)
Bison 3.8+
Flex 2.6.4+
CUDA Toolkit 11.8+(用于 GPU 目标)

大多数 Linux 发行版自带 Flex 和较旧版本的 Bison。如果你系统的 Bison 低于 3.8,下面的安装步骤会自动获取兼容版本。

从源码构建

克隆仓库并运行自动化安装:

git clone https://github.com/codes1gn/croqtile.git
cd croqtile
make setup-core

make setup-core 会拉取 git 子模块,并在未安装的情况下下载所需版本的 Flex、Bison、FileCheck 和 GoogleTest。安装完成后,构建编译器:

make

然后运行测试套件以确认一切正常:

make test

如果所有测试通过,croqtile 二进制文件已就绪,位于构建目录中。将其添加到 PATH 或使用完整路径调用。

验证安装

创建一个最简 .co 文件以确认编译器可以运行:

__co__ s32 [4] identity(s32 [4] input) {
  s32 [input.span] output;
  parallel i by 4
    output.at(i) = input.at(i);
  return output;
}

int main() {
  auto input = choreo::make_spandata<choreo::s32>(4);
  input[0] = 1; input[1] = 2; input[2] = 3; input[3] = 4;
  auto result = identity(input.view());
  for (int i = 0; i < 4; ++i)
    if (input[i] != result[i]) { std::cerr << "FAIL\n"; return 1; }
  std::cout << "OK\n";
}

编译并运行:

croqtile verify.co -o verify
./verify

你应该看到 OK。如果看到了,说明编译器、链接器和运行时都已正常工作。

编译器用法

croqtile 命令的使用方式类似 gccclang

croqtile program.co                     # 编译并链接 → a.out
croqtile program.co -o my_kernel        # 指定输出文件名
croqtile -es -t cuda program.co -o out.cu  # 仅输出 CUDA 源码
croqtile -E program.co                  # 仅预处理

主要标志:

标志 作用
-o <file> 设置输出文件名
-t <platform> 选择目标平台(如 cuda
-es 输出目标源码但不编译
-E 仅预处理(展开宏,剥离 #if 0 块)
-c 仅编译不链接
-S 输出汇编
--help 显示所有选项
--help-hidden 显示高级/内部选项

开发工具

Makefile 中包含了运行自带测试套件的快捷方式:

make help                              # 列出所有可用目标
make sample-test                       # 运行所有样例算子测试
make sample-test-operator OPERATOR=add # 测试特定算子

当你修改鳄霸本身或想要验证特定算子族时,这些快捷方式非常有用。

编译器安装并验证完毕后,你已准备好在第 1 章中编写你的第一个真正的鳄霸程序。