From fea417f4338ab8ae7f8686ea31b13864f15a7e4d Mon Sep 17 00:00:00 2001 From: kilinchange Date: Thu, 24 Sep 2026 17:08:00 +0000 Subject: [PATCH 1/4] ci: integrate iwyu checks --- .github/workflows/iwyu.yaml | 86 +++++++++++ docs/code_quality.md | 233 ++++++++++++++++++++++++++++ scripts/iwyu.imp | 7 + scripts/iwyu.py | 296 ++++++++++++++++++++++++++++++++++++ 4 files changed, 622 insertions(+) create mode 100644 .github/workflows/iwyu.yaml create mode 100644 docs/code_quality.md create mode 100644 scripts/iwyu.imp create mode 100644 scripts/iwyu.py diff --git a/.github/workflows/iwyu.yaml b/.github/workflows/iwyu.yaml new file mode 100644 index 000000000..5d14582a3 --- /dev/null +++ b/.github/workflows/iwyu.yaml @@ -0,0 +1,86 @@ +name: IWYU + +on: + pull_request: + push: + branches: + - master + +permissions: + contents: read + +concurrency: + group: iwyu-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + iwyu: + name: Run IWYU check + runs-on: ubuntu-24.04 + timeout-minutes: 15 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check for relevant changes + id: changes + env: + BASE_REF: ${{ github.event.pull_request.base.sha || github.event.before }} + run: | + if [[ -z "$BASE_REF" || "$BASE_REF" =~ ^0+$ ]]; then + BASE_REF="$(git rev-parse HEAD^)" + fi + + set +e + python3 scripts/iwyu.py \ + --has-relevant-changes \ + --ref "$BASE_REF" + status=$? + set -e + + if [[ "$status" -eq 0 ]]; then + echo "run=true" >> "$GITHUB_OUTPUT" + elif [[ "$status" -eq 1 ]]; then + echo "run=false" >> "$GITHUB_OUTPUT" + else + exit "$status" + fi + + - name: Initialize submodules + if: steps.changes.outputs.run == 'true' + uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive + + - name: Install IWYU + if: steps.changes.outputs.run == 'true' + run: | + sudo apt-get update + sudo apt-get install -y \ + clang-17 \ + iwyu \ + ninja-build + + - name: Generate compile database + if: steps.changes.outputs.run == 'true' + run: | + cmake -S . -B build/lint -G Ninja \ + -DCMAKE_C_COMPILER=clang-17 \ + -DCMAKE_CXX_COMPILER=clang++-17 \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_SCAN_FOR_MODULES=OFF \ + -DUSE_CUDA=OFF \ + -DUSE_NCCL=OFF \ + -DUSE_OMP=OFF \ + -DBUILD_TEST=ON + + - name: Check all translation units + if: steps.changes.outputs.run == 'true' + run: | + python3 scripts/iwyu.py \ + --all \ + --build-dir build/lint diff --git a/docs/code_quality.md b/docs/code_quality.md new file mode 100644 index 000000000..173675e9e --- /dev/null +++ b/docs/code_quality.md @@ -0,0 +1,233 @@ +# IWYU 检查 + +InfiniTrain 使用 [Include What You Use(IWYU)](https://include-what-you-use.org/) 检查 C/C++ 代码中的头文件依赖。 + +IWYU 基于实际编译参数分析 translation unit,主要用于发现: + +* 使用符号但未显式包含对应头文件; +* 未使用或可以移除的头文件; +* 可以使用前置声明替代完整 include 的场景。 + +IWYU 只生成修改建议,不会自动修改源码。工具建议可能受到第三方库、宏和编译配置影响,修改 include 后应重新编译并执行相关测试。 + +## 检查范围 + +IWYU 基于 CMake 生成的 `compile_commands.json` 运行,因此实际检查范围由当前 CMake 配置决定。 + +当前检查使用 CPU 构建配置: + +```bash +cmake -S . -B build/lint -G Ninja \ + -DCMAKE_C_COMPILER=clang-17 \ + -DCMAKE_CXX_COMPILER=clang++-17 \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ + -DCMAKE_CXX_SCAN_FOR_MODULES=OFF \ + -DUSE_CUDA=OFF \ + -DUSE_NCCL=OFF \ + -DUSE_OMP=OFF \ + -DBUILD_TEST=ON +``` + +`scripts/iwyu.py` 从 compilation database 中选择 `infini_train`、`example`、`tests` 和 `tools` 下的 C/C++ translation units,并排除第三方代码、构建目录以及预期编译失败的测试。 + +CUDA translation units 当前不包含在 IWYU 检查范围内。 + +头文件通常通过包含它们的 translation unit 接受分析,而不是作为独立 translation unit 单独运行 IWYU。 + +## 环境准备 + +Ubuntu 24.04 可以使用以下命令安装本地检查所需工具: + +```bash +sudo apt-get update +sudo apt-get install -y clang-17 iwyu ninja-build + +git submodule update --init --recursive +``` + +然后按照上一节的 CMake 命令生成: + +```text +build/lint/compile_commands.json +``` + +IWYU 与 Clang 版本应保持匹配。升级 Clang 或 IWYU 时,需要同步确认工具版本兼容性,并重新执行全量检查。 + +## 本地运行 + +### 检查全部 translation units + +```bash +python3 scripts/iwyu.py \ + --all \ + --build-dir build/lint +``` + +修改 IWYU 配置、mapping 或构建配置后,建议执行全量检查。 + +### 检查当前分支的相关修改 + +```bash +python3 scripts/iwyu.py \ + --ref origin/master \ + --build-dir build/lint +``` + +该模式比较 `origin/master` 与当前 `HEAD` 的共同祖先到 `HEAD` 之间的修改,并选择对应 translation units 执行检查。 + +### 检查暂存区修改 + +不指定 `--all` 或 `--ref` 时,脚本检查 Git 暂存区中的相关修改: + +```bash +git add + +python3 scripts/iwyu.py \ + --build-dir build/lint +``` + +增量模式用于缩短本地检查时间。头文件可能被多个 translation units 间接使用,因此需要完整验证时应使用 `--all`。 + +### 并行度 + +默认最多同时运行 4 个 IWYU 任务,可以通过 `--jobs` 调整: + +```bash +python3 scripts/iwyu.py \ + --all \ + --jobs 8 \ + --build-dir build/lint +``` + +如系统中的 IWYU driver 不在默认搜索路径,可以使用 `--iwyu-tool` 指定 `iwyu_tool.py` 或 `iwyu_tool`: + +```bash +python3 scripts/iwyu.py \ + --all \ + --iwyu-tool /path/to/iwyu_tool.py \ + --build-dir build/lint +``` + +## 头文件映射 + +`scripts/iwyu.imp` 用于补充 IWYU 的头文件映射规则。 + +第三方库或标准库中的符号实际定义位置可能位于内部实现头文件中。例如某个符号虽然定义在 `bits/...` 或 `Eigen/src/...` 中,但这些文件不是项目代码应该直接依赖的公共接口。 + +mapping 用于告诉 IWYU 应使用对应的公共头文件,而不是直接建议 include 内部实现头文件。 + +新增 mapping 时,应确认: + +1. 被映射的源头文件确实属于内部实现接口; +2. 目标头文件是对应符号的稳定公共接口; +3. mapping 不会掩盖真实的缺失 include; +4. 修改后重新运行全量 IWYU 检查。 + +不应仅为了消除 IWYU 输出而增加 mapping。 + +## 检查结果 + +IWYU 会输出建议增加或删除的 include、前置声明,以及建议保留的完整 include 列表。 +脚本会将 IWYU 的完整结果直接输出到控制台,便于在 CI 日志中逐项查看具体建议。为避免命令本身 +占用大量日志,启动信息只显示 translation unit 数量,不展开全部源码路径。 + +`scripts/iwyu.py` 向 IWYU 传入: + +```text +--error=1 +``` + +因此发现 IWYU violation 时命令返回非零状态,CI 检查也会失败。 + +例如: + +```text +foo.cc should add these lines: +#include + +foo.cc should remove these lines: +- #include + +The full include-list for foo.cc: +#include +``` + +应根据实际依赖逐项检查 IWYU 建议,而不是直接批量应用。特别是第三方库、宏展开和条件编译相关代码,需要确认建议在项目构建配置下仍然正确。 + +修改完成后重新运行 IWYU,并执行相应的编译和测试。 + +## 自动修复 + +自动修复使用 IWYU 官方提供的 `fix_includes.py`。Ubuntu 24.04 的 `iwyu` 软件包将该命令安装为 +`fix_include`,脚本会自动查找这两个名称;也可以通过 `--fix-tool` 指定路径。 +项目不自行解析和改写 IWYU 建议,以免重复维护官方修复逻辑。 + +先预览全仓修复结果,不修改文件: + +```bash +python3 scripts/iwyu.py \ + --all \ + --fix-dry-run \ + --build-dir build/lint +``` + +一键应用修复: + +```bash +python3 scripts/iwyu.py \ + --all \ + --fix \ + --build-dir build/lint +``` + +修复器只允许修改 `infini_train`、`example`、`tests` 和 `tools` 下的文件,不修改 `third_party`。 +默认使用 `--safe_headers`,因此可以向头文件添加缺失依赖,但不会自动从头文件删除 include 或前置声明; +源文件仍可正常增加和删除 include。默认也不添加 IWYU 的 “why” 注释、不重新排列现有 include, +并使用官方修复器的 `--blank_lines` 保留基本 include 分组。修复后仍需运行项目指定版本的 clang-format, +以应用项目完整的 include 分类规则。 + +确认建议可靠后,可以显式允许删除头文件中的 include: + +```bash +python3 scripts/iwyu.py \ + --all \ + --fix \ + --fix-header-removals \ + --build-dir build/lint +``` + +增量模式也支持 `--fix` 和 `--fix-dry-run`,选择编译单元的方式与普通增量检查相同。 +`--fix-dry-run` 的退出状态由系统安装的官方修复器决定;判断具体改动应以命令输出的 diff 为准。 +部分版本的官方修复器在 dry-run 末尾仍使用 “edited files” 表述,脚本会额外明确提示没有修改文件。 + +自动修复不等于建议一定正确。IWYU 官方将工具标记为实验性质,宏、条件编译、第三方类型和间接依赖仍需要人工复核。 +应用修复后,应运行 clang-format、重新生成或复用当前编译数据库再次执行 IWYU,并完成相关编译和测试。 +CI 只检查,不会调用自动修复模式。 + +## CI + +workflow 对所有 Pull Request 和 `master` 分支 push 启动。checkout 后先运行: + +```bash +python3 scripts/iwyu.py \ + --has-relevant-changes \ + --ref +``` + +源文件、头文件、CMake 配置、IWYU 脚本或 mapping、workflow、`.gitmodules` 或 `third_party` 子模块发生变化时, +脚本返回 0,CI 才初始化子模块、安装 IWYU、生成 compilation database 并执行全量检查。 +只有文档等无关文件发生变化时,脚本返回 1,后续耗时步骤跳过,IWYU job 仍以成功状态结束。 +判断过程异常时返回 2,CI 失败。 + +CI 使用与本地相同的 compilation database 配置,并通过: + +```bash +python3 scripts/iwyu.py \ + --all \ + --build-dir build/lint +``` + +执行全量检查。 + +CI 使用全量模式,避免仅根据文件变更关系筛选 translation unit 时遗漏头文件的间接使用场景。 +CI 不上传报告 artifact,完整检查结果保留在 CI 日志中。全量检查的超时时间为 15 分钟。 diff --git a/scripts/iwyu.imp b/scripts/iwyu.imp new file mode 100644 index 000000000..71d105660 --- /dev/null +++ b/scripts/iwyu.imp @@ -0,0 +1,7 @@ +[ + { "include": [ "@[\"<]bits/chrono\\.h[\">]", "private", "", "public" ] }, + { "include": [ "@[\"<]bits/std_abs\\.h[\">]", "private", "", "public" ] }, + { "symbol": [ "std::milli", "private", "", "public" ] }, + { "include": [ "@[\"<]Eigen/src/(Core|LU|Cholesky|SVD|QR|Eigenvalues|misc)/.*", "private", "\"Eigen/Dense\"", "public" ] }, + { "include": [ "@[\"<]Eigen/(Core|LU|Cholesky|SVD|QR|Eigenvalues)[\">]", "private", "\"Eigen/Dense\"", "public" ] } +] diff --git a/scripts/iwyu.py b/scripts/iwyu.py new file mode 100644 index 000000000..17c96746b --- /dev/null +++ b/scripts/iwyu.py @@ -0,0 +1,296 @@ +#!/usr/bin/env python3 +"""Run IWYU on changed translation units or the complete project database.""" + +from __future__ import annotations + +import argparse +import json +import os +import re +import shutil +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent +CPP_SOURCES = {".c", ".cc", ".cpp", ".cxx"} +CPP_HEADERS = {".h", ".hh", ".hpp", ".hxx", ".cuh"} +PROJECT_ROOTS = {"infini_train", "example", "tests", "tools"} +RELEVANT_FILES = { + Path(".github/workflows/iwyu.yaml"), + Path(".gitmodules"), + Path("CMakePresets.json"), + Path("scripts/iwyu.imp"), + Path("scripts/iwyu.py"), +} +INCLUDE_RE = re.compile(r'^\s*#\s*include\s*[<"]([^>"]+)[>"]', re.MULTILINE) + + +def capture(command: list[str]) -> str: + process = subprocess.run( + command, cwd=ROOT, capture_output=True, text=True, check=False + ) + if process.returncode != 0: + raise RuntimeError(process.stderr.strip() or "command failed") + return process.stdout + + +def merge_base(ref: str) -> str: + return capture(["git", "merge-base", ref, "HEAD"]).strip() + + +def changed_files(ref: str | None) -> list[Path]: + if ref: + arguments = ["git", "diff", f"{merge_base(ref)}..HEAD"] + else: + arguments = ["git", "diff", "--cached"] + output = capture( + [*arguments, "--no-renames", "--diff-filter=ACDM", "--name-only"] + ) + return [Path(line) for line in output.splitlines() if line.strip()] + + +def is_relevant_change(path: Path) -> bool: + if not path.parts or "build" in path.parts: + return False + return ( + path in RELEVANT_FILES + or path.parts[0] == "third_party" + or path.name == "CMakeLists.txt" + or path.suffix.lower() == ".cmake" + or path.suffix.lower() in CPP_SOURCES | CPP_HEADERS + ) + + +def project_sources(build_dir: Path) -> list[Path]: + database = json.loads( + (build_dir / "compile_commands.json").read_text(encoding="utf-8") + ) + sources = set() + for entry in database: + source = Path(entry["file"]) + if not source.is_absolute(): + source = Path(entry.get("directory", ROOT)) / source + source = source.resolve() + try: + relative = source.relative_to(ROOT) + except ValueError: + continue + if ( + not relative.parts + or relative.parts[0] not in PROJECT_ROOTS + or "third_party" in relative.parts + or "build" in relative.parts + or source.suffix.lower() not in CPP_SOURCES + or source.name.endswith("_compile_fail.cc") + ): + continue + sources.add(source) + return sorted(sources) + + +def changed_sources(build_dir: Path, changes: list[Path]) -> list[Path]: + available = project_sources(build_dir) + available_set = set(available) + selected = { + (ROOT / path).resolve() + for path in changes + if path.suffix.lower() in CPP_SOURCES + }.intersection(available_set) + changed_headers = { + (ROOT / path).resolve() + for path in changes + if path.suffix.lower() in CPP_HEADERS + } + + for header in sorted(changed_headers): + try: + header_relative = header.relative_to(ROOT).as_posix() + except ValueError: + continue + direct_users = [] + for source in available: + try: + includes = INCLUDE_RE.findall(source.read_text(encoding="utf-8")) + except (OSError, UnicodeError): + continue + if header_relative in includes or any( + (source.parent / include).resolve() == header for include in includes + ): + direct_users.append(source) + if direct_users: + selected.add(direct_users[0]) + continue + same_stem = [source for source in available if source.stem == header.stem] + if same_stem: + selected.add(same_stem[0]) + return sorted(selected) + + +def project_file_pattern() -> str: + roots = "|".join(re.escape(root) for root in sorted(PROJECT_ROOTS)) + repository = re.escape(ROOT.as_posix()) + return rf"^(?:{repository}/|\./)?(?:{roots})/" + + +def main() -> int: + parser = argparse.ArgumentParser() + mode = parser.add_mutually_exclusive_group() + mode.add_argument("--all", action="store_true", help="scan every project TU") + mode.add_argument( + "--has-relevant-changes", + action="store_true", + help="return 0 when the selected diff should trigger a full IWYU scan", + ) + parser.add_argument("--ref", help="compare with the merge-base of REF") + parser.add_argument("--build-dir", type=Path, default=Path("build/lint")) + parser.add_argument( + "--jobs", type=int, default=min(4, max(1, os.cpu_count() or 1)) + ) + parser.add_argument("--iwyu-tool") + fix_mode = parser.add_mutually_exclusive_group() + fix_mode.add_argument( + "--fix", action="store_true", help="apply IWYU output with fix_includes.py" + ) + fix_mode.add_argument( + "--fix-dry-run", + action="store_true", + help="print the fix_includes.py diff without modifying files", + ) + parser.add_argument( + "--fix-header-removals", + action="store_true", + help="allow fix_includes.py to remove includes from header files", + ) + parser.add_argument("--fix-tool") + args = parser.parse_args() + args.build_dir = args.build_dir.resolve() + + if args.has_relevant_changes and (args.fix or args.fix_dry_run): + parser.error("--has-relevant-changes cannot be combined with a fix mode") + if args.fix_header_removals and not (args.fix or args.fix_dry_run): + parser.error("--fix-header-removals requires --fix or --fix-dry-run") + if args.fix_tool and not (args.fix or args.fix_dry_run): + parser.error("--fix-tool requires --fix or --fix-dry-run") + + if args.has_relevant_changes: + try: + relevant = [ + path for path in changed_files(args.ref) if is_relevant_change(path) + ] + except RuntimeError as error: + print(f"error: {error}", file=sys.stderr) + return 2 + if relevant: + print("Relevant IWYU changes:") + for path in relevant: + print(f" {path}") + return 0 + print("No relevant changes require IWYU.") + return 1 + + tool = args.iwyu_tool or shutil.which("iwyu_tool.py") or shutil.which("iwyu_tool") + if tool is None: + print("error: iwyu_tool is required", file=sys.stderr) + return 2 + fixer = None + if args.fix or args.fix_dry_run: + fixer = ( + args.fix_tool + or shutil.which("fix_includes.py") + or shutil.which("fix_include") + ) + if fixer is None: + print( + "error: fix_includes.py or fix_include is required for fix mode", + file=sys.stderr, + ) + return 2 + try: + sources = ( + project_sources(args.build_dir) + if args.all + else changed_sources(args.build_dir, changed_files(args.ref)) + ) + except (OSError, RuntimeError, ValueError) as error: + print(f"error: {error}", file=sys.stderr) + return 2 + if not sources: + print("No translation units require IWYU.") + return 0 + + command = [ + tool, + "-j", + str(args.jobs), + "-p", + str(args.build_dir), + *[str(source) for source in sources], + "--", + "-Xiwyu", + "--cxx17ns", + "-Xiwyu", + "--mapping_file=" + str(ROOT / "scripts/iwyu.imp"), + ] + if not (args.fix or args.fix_dry_run): + command.extend(["-Xiwyu", "--error=1"]) + display_command = [ + tool, + "-j", + str(args.jobs), + "-p", + str(args.build_dir), + f"<{len(sources)} translation units>", + "--", + *command[command.index("--") + 1 :], + ] + print("+", " ".join(display_command), flush=True) + if not (args.fix or args.fix_dry_run): + return subprocess.run(command, cwd=ROOT, check=False).returncode + + analysis = subprocess.run( + command, + cwd=ROOT, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + check=False, + ) + print(analysis.stdout, end="") + if analysis.returncode != 0: + print( + "error: IWYU analysis failed; no automatic fixes were applied", + file=sys.stderr, + ) + return analysis.returncode + + fix_command = [ + fixer, + "--basedir", + str(ROOT), + "--only_re", + project_file_pattern(), + "--nocomments", + "--blank_lines", + "--noreorder", + "--nosafe_headers" if args.fix_header_removals else "--safe_headers", + ] + if args.fix_dry_run: + fix_command.append("--dry_run") + print("+", " ".join(fix_command), flush=True) + fixed = subprocess.run( + fix_command, + cwd=ROOT, + input=analysis.stdout, + text=True, + check=False, + ) + if args.fix_dry_run: + print("IWYU fix preview completed; no files were modified.") + elif fixed.returncode == 0: + print("IWYU fixes applied. Run formatting, build, and tests before committing.") + return fixed.returncode + + +if __name__ == "__main__": + raise SystemExit(main()) From aa58148a20d2c789ea86cfa1b4facab66310765e Mon Sep 17 00:00:00 2001 From: kilinchange Date: Fri, 16 Oct 2026 07:28:54 +0000 Subject: [PATCH 2/4] style: apply IWYU fixes across the codebase --- example/common/tiny_shakespeare_dataset.cc | 6 +++--- example/common/tiny_shakespeare_dataset.h | 3 ++- example/common/tokenizer.cc | 11 ++++++++-- example/common/tokenizer.h | 6 +++--- example/common/utils.h | 1 + example/gpt2/checkpoint_loader.cc | 8 ++++++- example/gpt2/checkpoint_loader.h | 2 +- example/gpt2/main.cc | 21 ++++++++++++++++--- example/llama3/checkpoint_loader.cc | 7 +++++++ example/llama3/checkpoint_loader.h | 2 +- example/llama3/main.cc | 18 +++++++++++++++- example/mixtral/checkpoint_loader.cc | 2 ++ example/mixtral/main.cc | 10 +++++++++ example/mnist/dataset.cc | 3 +-- example/mnist/dataset.h | 3 ++- example/mnist/main.cc | 8 ++++++- example/mnist/net.cc | 5 +++-- example/mnist/net.h | 3 --- example/qwen3/checkpoint_loader.cc | 5 +++++ example/qwen3/checkpoint_loader.h | 2 +- example/qwen3/main.cc | 18 +++++++++++++++- infini_train/include/autograd/comm.h | 10 ++++++--- infini_train/include/autograd/elementwise.h | 2 ++ infini_train/include/autograd/function.h | 2 ++ infini_train/include/autograd/function_hook.h | 6 +++++- infini_train/include/autograd/gather.h | 2 ++ infini_train/include/autograd/grad_mode.h | 1 - infini_train/include/autograd/matmul.h | 2 ++ infini_train/include/autograd/no_op.h | 2 ++ infini_train/include/autograd/reduction.h | 2 ++ infini_train/include/autograd/scatter.h | 2 ++ infini_train/include/autograd/scatter_add.h | 2 ++ infini_train/include/autograd/sparse.h | 2 ++ infini_train/include/autograd/topk.h | 2 ++ infini_train/include/checkpoint/checkpoint.h | 2 +- .../include/checkpoint/checkpoint_manager.h | 15 ++++++++----- infini_train/include/core/ccl/ccl.h | 15 +++++++++---- infini_train/include/core/ccl/ccl_utils.h | 3 +-- .../include/core/runtime/device_guard.h | 6 +++--- infini_train/include/dataloader.h | 4 ++-- infini_train/include/lr_scheduler.h | 2 +- infini_train/include/nn/init.h | 5 +++-- infini_train/include/nn/lora/lora_linear.h | 6 ++++++ .../include/nn/lora/lora_parallel_linear.h | 3 ++- infini_train/include/nn/lora/lora_utils.h | 5 +++-- infini_train/include/nn/modules/container.h | 2 ++ infini_train/include/nn/modules/linear.h | 3 ++- infini_train/include/nn/modules/loss.h | 1 + infini_train/include/nn/modules/module.h | 7 +++++-- .../include/nn/modules/normalization.h | 2 ++ infini_train/include/nn/modules/sparse.h | 1 - .../transformer/causal_self_attention.h | 4 +++- .../include/nn/modules/transformer/mlp.h | 5 ++++- .../nn/modules/transformer/moe/experts.h | 3 +++ .../nn/modules/transformer/moe/moe_layer.h | 1 + .../nn/modules/transformer/moe/moe_utils.h | 1 + .../nn/modules/transformer/moe/router.h | 1 + .../nn/modules/transformer/transformer.h | 2 ++ .../include/nn/modules/transformer/utils.h | 1 + infini_train/include/nn/parallel/comm.h | 5 +++-- .../parallel/ddp/distributed_data_parallel.h | 12 +++++++---- .../nn/parallel/ddp/distributed_optimizer.h | 6 +++++- .../nn/parallel/ddp/param_and_grad_buffer.h | 7 +++++-- .../include/nn/parallel/ddp/reducer.h | 7 +++++-- infini_train/include/nn/parallel/global.h | 2 ++ .../include/nn/parallel/parallel_functional.h | 10 +++++++-- .../nn/parallel/pp/pipeline_parallel.h | 4 ++++ .../nn/parallel/pp/pipeline_schedule.h | 7 +++++-- .../include/nn/parallel/pp/pipeline_stage.h | 5 +++-- .../include/nn/parallel/pp/send_recv.h | 5 +++-- .../include/nn/parallel/process_group.h | 10 ++++++--- .../include/nn/parallel/tensor_parallel.h | 4 ++-- infini_train/include/nn/parallel/utils.h | 6 +++++- infini_train/include/nn/parallel/work.h | 7 +++++-- infini_train/include/profiler.h | 4 ++-- infini_train/include/tensor.h | 4 +++- .../include/utils/precision_check_config.h | 1 - .../include/utils/precision_checker.h | 5 +++-- infini_train/include/utils/string_utils.h | 2 ++ infini_train/src/autograd/accumulate.cc | 6 ++++++ infini_train/src/autograd/activations.cc | 3 +++ infini_train/src/autograd/comm.cc | 2 ++ infini_train/src/autograd/elementwise.cc | 4 ++++ infini_train/src/autograd/function.cc | 5 +++-- infini_train/src/autograd/function_hook.cc | 5 ++++- infini_train/src/autograd/gather.cc | 1 + infini_train/src/autograd/linear.cc | 3 +++ infini_train/src/autograd/loss.cc | 1 + infini_train/src/autograd/matmul.cc | 3 +++ infini_train/src/autograd/no_op.cc | 1 + infini_train/src/autograd/normalization.cc | 3 +++ infini_train/src/autograd/outer.cc | 2 ++ infini_train/src/autograd/reduction.cc | 1 + infini_train/src/autograd/scatter.cc | 1 + infini_train/src/autograd/scatter_add.cc | 1 + infini_train/src/autograd/softmax.cc | 1 + infini_train/src/autograd/sparse.cc | 1 + infini_train/src/autograd/topk.cc | 1 + infini_train/src/autograd/transform.cc | 3 +++ infini_train/src/checkpoint/checkpoint.cc | 4 ++++ .../src/checkpoint/checkpoint_manager.cc | 8 ++++--- infini_train/src/core/ccl/ccl.cc | 13 +++++++++++- infini_train/src/core/ccl/ccl_utils.cc | 2 ++ infini_train/src/core/privateuse1_backend.cc | 2 ++ .../src/core/runtime/cpu/cpu_guard_impl.cc | 2 ++ .../src/core/runtime/cpu/cpu_guard_impl.h | 5 +++++ infini_train/src/core/runtime/device_guard.cc | 2 ++ infini_train/src/dataloader.cc | 4 ++++ infini_train/src/datatype.cc | 2 -- .../src/kernels/cpu/accumulate_grad.cc | 4 ++++ infini_train/src/kernels/cpu/cast.cc | 9 ++++++++ infini_train/src/kernels/cpu/concat.cc | 9 ++++++++ infini_train/src/kernels/cpu/cross_entropy.cc | 7 +++++++ infini_train/src/kernels/cpu/elementwise.cc | 5 +++++ infini_train/src/kernels/cpu/embedding.cc | 6 ++++++ infini_train/src/kernels/cpu/fill.cc | 5 ++++- infini_train/src/kernels/cpu/gather.cc | 7 ++++++- infini_train/src/kernels/cpu/layernorm.cc | 5 +++++ infini_train/src/kernels/cpu/linear.cc | 6 ++++-- infini_train/src/kernels/cpu/matmul.cc | 4 ++++ infini_train/src/kernels/cpu/no_op.cc | 5 +++++ infini_train/src/kernels/cpu/outer.cc | 5 ++++- infini_train/src/kernels/cpu/reduction.cc | 5 +++++ infini_train/src/kernels/cpu/scatter.cc | 6 ++++++ infini_train/src/kernels/cpu/sigmoid.cc | 6 ++++-- infini_train/src/kernels/cpu/slice.cc | 5 ++++- infini_train/src/kernels/cpu/softmax.cc | 5 +++-- infini_train/src/kernels/cpu/split.cc | 7 +++++++ infini_train/src/kernels/cpu/stack.cc | 7 +++++++ infini_train/src/kernels/cpu/swiglu.cc | 5 +++++ infini_train/src/kernels/cpu/topk.cc | 6 ++++++ infini_train/src/kernels/cpu/transform.cc | 9 ++++++++ infini_train/src/lr_scheduler.cc | 3 +++ infini_train/src/nn/functional.cc | 1 + infini_train/src/nn/init.cc | 11 +++++++++- infini_train/src/nn/lora/lora_config.cc | 2 ++ infini_train/src/nn/lora/lora_linear.cc | 9 ++++++-- .../src/nn/lora/lora_parallel_linear.cc | 7 +++++-- infini_train/src/nn/lora/lora_utils.cc | 7 ++++++- infini_train/src/nn/modules/activations.cc | 1 + infini_train/src/nn/modules/container.cc | 4 +++- infini_train/src/nn/modules/linear.cc | 3 +++ infini_train/src/nn/modules/loss.cc | 1 - infini_train/src/nn/modules/module.cc | 5 ++++- infini_train/src/nn/modules/normalization.cc | 3 +++ infini_train/src/nn/modules/sparse.cc | 5 +++++ .../transformer/causal_self_attention.cc | 5 +++-- .../src/nn/modules/transformer/mlp.cc | 10 ++++----- .../src/nn/modules/transformer/moe/experts.cc | 2 ++ .../nn/modules/transformer/moe/moe_layer.cc | 4 +++- .../nn/modules/transformer/moe/moe_utils.cc | 5 +++++ .../src/nn/modules/transformer/moe/router.cc | 8 ++++--- .../transformer/moe/token_dispatcher.cc | 3 +++ .../src/nn/modules/transformer/transformer.cc | 10 ++++++++- .../modules/transformer/transformer_config.cc | 7 +++++++ .../src/nn/modules/transformer/utils.cc | 3 +++ infini_train/src/nn/parallel/comm.cc | 2 ++ infini_train/src/nn/parallel/data_parallel.cc | 4 ++++ .../parallel/ddp/distributed_data_parallel.cc | 9 +++++++- .../nn/parallel/ddp/distributed_optimizer.cc | 8 +++++++ .../nn/parallel/ddp/param_and_grad_buffer.cc | 6 +++++- infini_train/src/nn/parallel/ddp/reducer.cc | 8 ++++++- infini_train/src/nn/parallel/global.cc | 4 ++++ .../src/nn/parallel/parallel_functional.cc | 8 +++++++ .../src/nn/parallel/pp/pipeline_parallel.cc | 8 ++++++- .../src/nn/parallel/pp/pipeline_schedule.cc | 5 ++++- .../src/nn/parallel/pp/pipeline_stage.cc | 3 ++- infini_train/src/nn/parallel/pp/send_recv.cc | 5 +++-- infini_train/src/nn/parallel/process_group.cc | 6 ++++++ .../src/nn/parallel/tensor_parallel.cc | 9 +++++++- infini_train/src/nn/parallel/utils.cc | 5 +++++ infini_train/src/nn/parallel/work.cc | 6 ++++++ infini_train/src/optimizer.cc | 6 ++++++ infini_train/src/profiler.cc | 4 ++++ infini_train/src/tensor.cc | 9 ++++++-- infini_train/src/utils/checkpoint.cc | 7 +++++++ .../src/utils/global_module_hook_registry.cc | 2 ++ .../src/utils/precision_check_config.cc | 1 + infini_train/src/utils/precision_checker.cc | 7 ++++++- infini_train/src/utils/string_utils.cc | 2 ++ tests/autograd/test_activation_checkpoint.cc | 6 ++++++ tests/autograd/test_autograd.cc | 7 ++++++- .../test_autograd_elementwise_backward.cc | 8 ++++++- .../test_autograd_elementwise_forward.cc | 6 ++++-- .../autograd/test_autograd_linear_backward.cc | 6 +++++- .../autograd/test_autograd_linear_forward.cc | 5 ++++- tests/autograd/test_autograd_loss.cc | 5 ++++- .../autograd/test_autograd_matmul_backward.cc | 5 ++++- .../autograd/test_autograd_matmul_forward.cc | 5 ++++- .../test_autograd_normalization_backward.cc | 5 ++++- .../test_autograd_normalization_forward.cc | 5 ++++- .../test_autograd_reduction_backward.cc | 5 ++++- .../test_autograd_reduction_forward.cc | 5 ++++- .../test_autograd_softmax_backward.cc | 5 ++++- .../autograd/test_autograd_softmax_forward.cc | 5 ++++- .../test_autograd_transform_backward.cc | 6 +++++- .../test_autograd_transform_forward.cc | 5 ++++- tests/backend/test_privateuse1_backend.cc | 8 +++++++ .../test_privateuse1_backend_validation.cc | 4 ++++ .../test_checkpoint_serialization.cc | 5 ++++- tests/checkpoint/test_lr_scheduler_state.cc | 4 ++++ tests/checkpoint/test_optimizer_state.cc | 8 +++++++ tests/checkpoint/test_trainer_state.cc | 7 ++++++- tests/dataloader/test_dataloader.cc | 3 +++ tests/distributed/test_rank.cc | 2 ++ tests/dtype/test_dtype_dispatch.cc | 3 +++ tests/dtype/test_scalar.cc | 3 ++- tests/hook/test_hook.cc | 9 ++++++-- tests/hook/test_precision_check.cc | 6 +++--- tests/lora/test_lora.cc | 9 ++++++-- tests/module/test_named_parameters.cc | 9 +++++++- tests/optimizer/test_lr_scheduler.cc | 6 +++++- tests/optimizer/test_optimizer_creation.cc | 4 ++++ .../test_optimizer_parameter_names.cc | 6 ++++++ tests/optimizer/test_optimizer_step.cc | 5 ++++- tests/tensor/cpu_only/test_tensor_copy.cc | 4 ++++ tests/tensor/test_tensor.cc | 3 +++ tests/tensor/test_tensor_accelerator_copy.cc | 4 ++++ tests/tensor/test_tensor_copy.cc | 4 ++++ tests/tensor/test_tensor_create.cc | 4 ++++ tests/tensor/test_tensor_delete.cc | 4 ++++ tests/transformer/test_qwen3_architecture.cc | 7 +++++++ .../test_transformer_architecture.cc | 8 ++++++- tools/infini_run/infini_run.cc | 7 +++++-- 224 files changed, 938 insertions(+), 179 deletions(-) diff --git a/example/common/tiny_shakespeare_dataset.cc b/example/common/tiny_shakespeare_dataset.cc index 2474e7506..78cd42f9e 100644 --- a/example/common/tiny_shakespeare_dataset.cc +++ b/example/common/tiny_shakespeare_dataset.cc @@ -1,15 +1,14 @@ #include "example/common/tiny_shakespeare_dataset.h" #include -#include -#include +#include #include #include #include -#include #include #include #include +#include #include #include #include @@ -17,6 +16,7 @@ #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" namespace { diff --git a/example/common/tiny_shakespeare_dataset.h b/example/common/tiny_shakespeare_dataset.h index 8e061ddf7..991d0e300 100644 --- a/example/common/tiny_shakespeare_dataset.h +++ b/example/common/tiny_shakespeare_dataset.h @@ -1,7 +1,8 @@ #pragma once +#include + #include -#include #include #include #include diff --git a/example/common/tokenizer.cc b/example/common/tokenizer.cc index 9c4122a1b..fc57a67eb 100644 --- a/example/common/tokenizer.cc +++ b/example/common/tokenizer.cc @@ -1,19 +1,26 @@ #include "example/common/tokenizer.h" -#include +#include + +#include #include #include #include #include +#include +#include #include #include "glog/logging.h" -#include "example/common/utils.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/tensor.h" +#include "example/common/utils.h" + namespace infini_train { constexpr uint32_t kGpt2Eot = 50256; diff --git a/example/common/tokenizer.h b/example/common/tokenizer.h index e1e3063ec..c2315ba42 100644 --- a/example/common/tokenizer.h +++ b/example/common/tokenizer.h @@ -1,10 +1,10 @@ -#include #include +#include #include -#include "infini_train/include/device.h" - namespace infini_train { +class Device; + namespace nn { class Module; } diff --git a/example/common/utils.h b/example/common/utils.h index 5bab3e971..3cc54ba0c 100644 --- a/example/common/utils.h +++ b/example/common/utils.h @@ -3,6 +3,7 @@ #include #include #include +#include #include namespace infini_train { diff --git a/example/gpt2/checkpoint_loader.cc b/example/gpt2/checkpoint_loader.cc index b2ef92b28..a6e7693ae 100644 --- a/example/gpt2/checkpoint_loader.cc +++ b/example/gpt2/checkpoint_loader.cc @@ -1,22 +1,28 @@ #include "example/gpt2/checkpoint_loader.h" -#include +#include + #include #include +#include #include #include #include #include #include +#include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/modules/normalization.h" #include "infini_train/include/nn/modules/sparse.h" #include "infini_train/include/nn/modules/transformer/causal_self_attention.h" #include "infini_train/include/nn/modules/transformer/mlp.h" #include "infini_train/include/nn/modules/transformer/transformer.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" diff --git a/example/gpt2/checkpoint_loader.h b/example/gpt2/checkpoint_loader.h index 1ba822f5b..bf2dce051 100644 --- a/example/gpt2/checkpoint_loader.h +++ b/example/gpt2/checkpoint_loader.h @@ -3,7 +3,7 @@ #include #include -#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" // IWYU pragma: keep namespace infini_train::nn { class TransformerModel; diff --git a/example/gpt2/main.cc b/example/gpt2/main.cc index a23984689..27f5e79bc 100644 --- a/example/gpt2/main.cc +++ b/example/gpt2/main.cc @@ -1,16 +1,33 @@ +#include + +#include #include #include #include #include +#include #include #include +#include +#include +#include #include +#include #include #include +#include +#include #include "gflags/gflags.h" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/lora/lora_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" +#include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/tensor.h" + // Out-of-tree builds inject the selected provider's declaration without adding // a vendor dependency to the upstream example. #ifdef INFINITRAIN_EXAMPLE_EXTERNAL_BACKEND_HEADER @@ -32,17 +49,15 @@ #include "infini_train/include/nn/parallel/ddp/distributed_optimizer.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" -#include "infini_train/include/nn/parallel/process_group.h" #include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" +#include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/optimizer.h" #ifdef PROFILE_MODE #include "infini_train/include/profiler.h" #endif #include "infini_train/include/checkpoint/checkpoint_manager.h" -#include "infini_train/include/nn/parallel/utils.h" -#include "infini_train/include/utils/global_module_hook_registry.h" #include "infini_train/include/utils/precision_check_config.h" #include "infini_train/include/utils/precision_checker.h" diff --git a/example/llama3/checkpoint_loader.cc b/example/llama3/checkpoint_loader.cc index 52a52d357..5f12dfcce 100644 --- a/example/llama3/checkpoint_loader.cc +++ b/example/llama3/checkpoint_loader.cc @@ -1,13 +1,18 @@ #include "example/llama3/checkpoint_loader.h" +#include + #include #include #include +#include #include #include +#include #include #include #include +#include #include #include "glog/logging.h" @@ -16,7 +21,9 @@ #include "infini_train/include/nn/modules/transformer/causal_self_attention.h" #include "infini_train/include/nn/modules/transformer/mlp.h" #include "infini_train/include/nn/modules/transformer/transformer.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/tensor.h" diff --git a/example/llama3/checkpoint_loader.h b/example/llama3/checkpoint_loader.h index 7abd84d10..333ad82f2 100644 --- a/example/llama3/checkpoint_loader.h +++ b/example/llama3/checkpoint_loader.h @@ -3,7 +3,7 @@ #include #include -#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" // IWYU pragma: keep namespace infini_train::nn { class TransformerModel; diff --git a/example/llama3/main.cc b/example/llama3/main.cc index 5d95a0991..0a9a3920d 100644 --- a/example/llama3/main.cc +++ b/example/llama3/main.cc @@ -1,14 +1,31 @@ +#include + +#include +#include #include #include #include +#include #include #include +#include +#include +#include #include +#include #include +#include +#include #include "gflags/gflags.h" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/lora/lora_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" +#include "infini_train/include/tensor.h" + // Out-of-tree builds inject the selected provider's declaration without adding // a vendor dependency to the upstream example. #ifdef INFINITRAIN_EXAMPLE_EXTERNAL_BACKEND_HEADER @@ -37,7 +54,6 @@ #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/optimizer.h" -#include "infini_train/include/utils/global_module_hook_registry.h" #include "infini_train/include/utils/precision_check_config.h" #include "infini_train/include/utils/precision_checker.h" #ifdef PROFILE_MODE diff --git a/example/mixtral/checkpoint_loader.cc b/example/mixtral/checkpoint_loader.cc index a90d9fb4a..1b5232dc7 100644 --- a/example/mixtral/checkpoint_loader.cc +++ b/example/mixtral/checkpoint_loader.cc @@ -3,7 +3,9 @@ #include #include #include +#include #include +#include #include #include "glog/logging.h" diff --git a/example/mixtral/main.cc b/example/mixtral/main.cc index 4998675f8..337c541e4 100644 --- a/example/mixtral/main.cc +++ b/example/mixtral/main.cc @@ -1,14 +1,24 @@ +#include + +#include #include #include #include +#include #include #include +#include +#include #include #include #include "gflags/gflags.h" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/modules/module.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" + // Out-of-tree builds inject the selected provider's declaration without adding // a vendor dependency to the upstream example. #ifdef INFINITRAIN_EXAMPLE_EXTERNAL_BACKEND_HEADER diff --git a/example/mnist/dataset.cc b/example/mnist/dataset.cc index ee683f6d4..7a3a1337c 100644 --- a/example/mnist/dataset.cc +++ b/example/mnist/dataset.cc @@ -1,12 +1,10 @@ #include "example/mnist/dataset.h" #include -#include #include #include #include #include -#include #include #include #include @@ -16,6 +14,7 @@ #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" namespace { diff --git a/example/mnist/dataset.h b/example/mnist/dataset.h index 8d6193fb7..b43edc102 100644 --- a/example/mnist/dataset.h +++ b/example/mnist/dataset.h @@ -1,7 +1,8 @@ #pragma once +#include + #include -#include #include #include #include diff --git a/example/mnist/main.cc b/example/mnist/main.cc index 54e912c20..683e192d1 100644 --- a/example/mnist/main.cc +++ b/example/mnist/main.cc @@ -1,9 +1,13 @@ +#include + +#include #include -#include #include #include #include #include +#include +#include #include #include "gflags/gflags.h" @@ -12,7 +16,9 @@ #include "infini_train/include/dataloader.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/modules/loss.h" +#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/optimizer.h" +#include "infini_train/include/tensor.h" #include "example/mnist/dataset.h" #include "example/mnist/net.h" diff --git a/example/mnist/net.cc b/example/mnist/net.cc index 501fee7ef..4cd42d543 100644 --- a/example/mnist/net.cc +++ b/example/mnist/net.cc @@ -1,7 +1,9 @@ #include "example/mnist/net.h" -#include #include +#include +#include +#include #include #include "glog/logging.h" @@ -10,7 +12,6 @@ #include "infini_train/include/nn/modules/container.h" #include "infini_train/include/nn/modules/linear.h" #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/tensor.h" namespace nn = infini_train::nn; diff --git a/example/mnist/net.h b/example/mnist/net.h index 5f4cfa33b..e625e1267 100644 --- a/example/mnist/net.h +++ b/example/mnist/net.h @@ -1,11 +1,8 @@ #pragma once -#include #include #include -#include "glog/logging.h" - #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/tensor.h" diff --git a/example/qwen3/checkpoint_loader.cc b/example/qwen3/checkpoint_loader.cc index 880a630d6..5a348113e 100644 --- a/example/qwen3/checkpoint_loader.cc +++ b/example/qwen3/checkpoint_loader.cc @@ -6,8 +6,11 @@ #include #include #include +#include #include #include +#include +#include #include #include "glog/logging.h" @@ -16,7 +19,9 @@ #include "infini_train/include/nn/modules/transformer/causal_self_attention.h" #include "infini_train/include/nn/modules/transformer/mlp.h" #include "infini_train/include/nn/modules/transformer/transformer.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/tensor.h" diff --git a/example/qwen3/checkpoint_loader.h b/example/qwen3/checkpoint_loader.h index a56658404..1d05a0135 100644 --- a/example/qwen3/checkpoint_loader.h +++ b/example/qwen3/checkpoint_loader.h @@ -3,7 +3,7 @@ #include #include -#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" // IWYU pragma: keep namespace infini_train::nn { class TransformerModel; diff --git a/example/qwen3/main.cc b/example/qwen3/main.cc index 1eb23c295..194cde8a5 100644 --- a/example/qwen3/main.cc +++ b/example/qwen3/main.cc @@ -1,14 +1,31 @@ +#include + +#include +#include #include #include #include +#include #include #include +#include +#include +#include #include +#include #include +#include +#include #include "gflags/gflags.h" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/lora/lora_config.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" +#include "infini_train/include/tensor.h" + // Out-of-tree builds inject the selected provider's declaration without adding // a vendor dependency to the upstream example. #ifdef INFINITRAIN_EXAMPLE_EXTERNAL_BACKEND_HEADER @@ -37,7 +54,6 @@ #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/optimizer.h" -#include "infini_train/include/utils/global_module_hook_registry.h" #include "infini_train/include/utils/precision_check_config.h" #include "infini_train/include/utils/precision_checker.h" #ifdef PROFILE_MODE diff --git a/infini_train/include/autograd/comm.h b/infini_train/include/autograd/comm.h index e383b4008..9b3d9fdee 100644 --- a/infini_train/include/autograd/comm.h +++ b/infini_train/include/autograd/comm.h @@ -1,16 +1,20 @@ #pragma once -#include +#include + #include #include #include "infini_train/include/autograd/function.h" #include "infini_train/include/device.h" -#include "infini_train/include/nn/parallel/reduce_op_type.h" + +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm namespace infini_train { + class Tensor; -class Device; namespace nn::parallel { class ProcessGroup; diff --git a/infini_train/include/autograd/elementwise.h b/infini_train/include/autograd/elementwise.h index 16c33c4fd..fd6769f13 100644 --- a/infini_train/include/autograd/elementwise.h +++ b/infini_train/include/autograd/elementwise.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/function.h b/infini_train/include/autograd/function.h index 9e05a7b82..afab93975 100644 --- a/infini_train/include/autograd/function.h +++ b/infini_train/include/autograd/function.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include diff --git a/infini_train/include/autograd/function_hook.h b/infini_train/include/autograd/function_hook.h index 82ee85fcb..f72e05f1d 100644 --- a/infini_train/include/autograd/function_hook.h +++ b/infini_train/include/autograd/function_hook.h @@ -1,9 +1,13 @@ #pragma once +#include + #include #include -#include "infini_train/include/nn/parallel/reduce_op_type.h" +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm namespace infini_train { class Tensor; diff --git a/infini_train/include/autograd/gather.h b/infini_train/include/autograd/gather.h index 0fb44c51a..1c237f227 100644 --- a/infini_train/include/autograd/gather.h +++ b/infini_train/include/autograd/gather.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/grad_mode.h b/infini_train/include/autograd/grad_mode.h index 1a21bff48..3e39b9465 100644 --- a/infini_train/include/autograd/grad_mode.h +++ b/infini_train/include/autograd/grad_mode.h @@ -1,5 +1,4 @@ #pragma once -#include namespace infini_train::autograd { diff --git a/infini_train/include/autograd/matmul.h b/infini_train/include/autograd/matmul.h index 2f3304020..ba9b96c18 100644 --- a/infini_train/include/autograd/matmul.h +++ b/infini_train/include/autograd/matmul.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/no_op.h b/infini_train/include/autograd/no_op.h index a097393dc..d8140c913 100644 --- a/infini_train/include/autograd/no_op.h +++ b/infini_train/include/autograd/no_op.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/reduction.h b/infini_train/include/autograd/reduction.h index 24b88cbfe..f4383919e 100644 --- a/infini_train/include/autograd/reduction.h +++ b/infini_train/include/autograd/reduction.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/scatter.h b/infini_train/include/autograd/scatter.h index 3d6f830a1..9561b05ed 100644 --- a/infini_train/include/autograd/scatter.h +++ b/infini_train/include/autograd/scatter.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/scatter_add.h b/infini_train/include/autograd/scatter_add.h index 3adc15868..2b4f1a495 100644 --- a/infini_train/include/autograd/scatter_add.h +++ b/infini_train/include/autograd/scatter_add.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/sparse.h b/infini_train/include/autograd/sparse.h index ef1cc21bc..4d61caf4a 100644 --- a/infini_train/include/autograd/sparse.h +++ b/infini_train/include/autograd/sparse.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/autograd/topk.h b/infini_train/include/autograd/topk.h index 1f2af342c..5a63e93aa 100644 --- a/infini_train/include/autograd/topk.h +++ b/infini_train/include/autograd/topk.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/checkpoint/checkpoint.h b/infini_train/include/checkpoint/checkpoint.h index a69aad232..9fdd1eb02 100644 --- a/infini_train/include/checkpoint/checkpoint.h +++ b/infini_train/include/checkpoint/checkpoint.h @@ -2,7 +2,6 @@ #include #include -#include #include #include #include @@ -11,6 +10,7 @@ namespace infini_train { class Optimizer; class LRScheduler; class Tensor; + namespace nn { class Module; } diff --git a/infini_train/include/checkpoint/checkpoint_manager.h b/infini_train/include/checkpoint/checkpoint_manager.h index 13490ccce..be389f416 100644 --- a/infini_train/include/checkpoint/checkpoint_manager.h +++ b/infini_train/include/checkpoint/checkpoint_manager.h @@ -5,11 +5,16 @@ #include #include -#include "infini_train/include/checkpoint/checkpoint.h" -#include "infini_train/include/dataloader.h" -#include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/parallel/rank.h" -#include "infini_train/include/optimizer.h" +namespace infini_train { +class Optimizer; +struct TrainerState; +} // namespace infini_train +namespace infini_train::nn { +class Module; +} // namespace infini_train::nn +namespace infini_train::nn::parallel { +class Rank; +} // namespace infini_train::nn::parallel using namespace infini_train; namespace nn = infini_train::nn; diff --git a/infini_train/include/core/ccl/ccl.h b/infini_train/include/core/ccl/ccl.h index d969eb432..ab7911165 100644 --- a/infini_train/include/core/ccl/ccl.h +++ b/infini_train/include/core/ccl/ccl.h @@ -3,18 +3,25 @@ #include #include #include -#include #include #include "infini_train/include/common/common.h" -#include "infini_train/include/core/ccl/ccl_common.h" -#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" -#include "infini_train/include/nn/parallel/reduce_op_type.h" + +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm + +namespace infini_train { +enum class DataType : int8_t; +} // namespace infini_train namespace infini_train::core { class Stream; +class CclComm; +class CclUniqueId; +enum class CclStatus : int32_t; class CclImpl { public: diff --git a/infini_train/include/core/ccl/ccl_utils.h b/infini_train/include/core/ccl/ccl_utils.h index 0b5a750c5..576c3b96c 100644 --- a/infini_train/include/core/ccl/ccl_utils.h +++ b/infini_train/include/core/ccl/ccl_utils.h @@ -2,9 +2,8 @@ #include -#include "infini_train/include/core/ccl/ccl_common.h" - namespace infini_train::core { +class CclUniqueId; void WriteUniqueIdFile(const CclUniqueId &unique_id, const std::string &pg_name); diff --git a/infini_train/include/core/runtime/device_guard.h b/infini_train/include/core/runtime/device_guard.h index 6590b141e..9872b2ce6 100644 --- a/infini_train/include/core/runtime/device_guard.h +++ b/infini_train/include/core/runtime/device_guard.h @@ -1,8 +1,11 @@ #pragma once +#include + #include #include #include +#include #include "infini_train/include/common/common.h" #include "infini_train/include/core/runtime/runtime_common.h" @@ -10,9 +13,6 @@ namespace infini_train::core { -class Stream; -class BlasHandle; - // Note(dcj): In the CPU backend, kD2D corresponds to a regular memcpy. enum class MemcpyKind : int8_t { kH2D = 0, diff --git a/infini_train/include/dataloader.h b/infini_train/include/dataloader.h index 1cb6a94ee..a1a5fd24f 100644 --- a/infini_train/include/dataloader.h +++ b/infini_train/include/dataloader.h @@ -4,12 +4,12 @@ #include #include -#include "infini_train/include/dataset.h" - namespace infini_train { class Tensor; } namespace infini_train { +class Dataset; + class DataLoaderIterator { public: std::pair, std::shared_ptr> operator*() const; diff --git a/infini_train/include/lr_scheduler.h b/infini_train/include/lr_scheduler.h index 6ae601a10..7e0ed3c43 100644 --- a/infini_train/include/lr_scheduler.h +++ b/infini_train/include/lr_scheduler.h @@ -1,11 +1,11 @@ #pragma once -#include #include #include #include #include #include +#include #include #include diff --git a/infini_train/include/nn/init.h b/infini_train/include/nn/init.h index fc6effec9..cb30ce045 100644 --- a/infini_train/include/nn/init.h +++ b/infini_train/include/nn/init.h @@ -1,16 +1,17 @@ #pragma once +#include + #include #include #include #include -#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" namespace infini_train { class Tensor; -class Device; +enum class DataType : int8_t; } // namespace infini_train namespace infini_train::nn::init { diff --git a/infini_train/include/nn/lora/lora_linear.h b/infini_train/include/nn/lora/lora_linear.h index f34cd1343..44114602e 100644 --- a/infini_train/include/nn/lora/lora_linear.h +++ b/infini_train/include/nn/lora/lora_linear.h @@ -1,11 +1,17 @@ #pragma once +#include + #include #include #include "infini_train/include/nn/lora/lora_config.h" #include "infini_train/include/nn/modules/linear.h" +namespace infini_train::nn { +class Module; +} // namespace infini_train::nn + // Forward declarations for test functions (required for friend declarations) void test_lora_linear_init(); void test_lora_linear_forward(); diff --git a/infini_train/include/nn/lora/lora_parallel_linear.h b/infini_train/include/nn/lora/lora_parallel_linear.h index d73a6e2b5..db02bfc61 100644 --- a/infini_train/include/nn/lora/lora_parallel_linear.h +++ b/infini_train/include/nn/lora/lora_parallel_linear.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -8,7 +10,6 @@ namespace infini_train { class Tensor; -class Device; } // namespace infini_train namespace infini_train::nn::lora { diff --git a/infini_train/include/nn/lora/lora_utils.h b/infini_train/include/nn/lora/lora_utils.h index 2872bb96d..3b1498c6c 100644 --- a/infini_train/include/nn/lora/lora_utils.h +++ b/infini_train/include/nn/lora/lora_utils.h @@ -1,13 +1,13 @@ #pragma once +#include + #include #include #include #include #include -#include "infini_train/include/nn/lora/lora_config.h" - namespace infini_train { class Tensor; } @@ -17,6 +17,7 @@ class Module; } namespace infini_train::nn::lora { +struct LoRAConfig; namespace detail { diff --git a/infini_train/include/nn/modules/container.h b/infini_train/include/nn/modules/container.h index 28bceccf1..fd58d5e04 100644 --- a/infini_train/include/nn/modules/container.h +++ b/infini_train/include/nn/modules/container.h @@ -1,6 +1,8 @@ #pragma once +#include #include +#include #include #include diff --git a/infini_train/include/nn/modules/linear.h b/infini_train/include/nn/modules/linear.h index dbdca5a7c..65c870f77 100644 --- a/infini_train/include/nn/modules/linear.h +++ b/infini_train/include/nn/modules/linear.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -8,7 +10,6 @@ namespace infini_train { class Tensor; -class Device; } // namespace infini_train namespace infini_train::nn { diff --git a/infini_train/include/nn/modules/loss.h b/infini_train/include/nn/modules/loss.h index f0543f534..a6329ff1b 100644 --- a/infini_train/include/nn/modules/loss.h +++ b/infini_train/include/nn/modules/loss.h @@ -4,6 +4,7 @@ #include #include "infini_train/include/nn/modules/module.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn { class CrossEntropyLoss : public CloneableModule { diff --git a/infini_train/include/nn/modules/module.h b/infini_train/include/nn/modules/module.h index 5b875517f..fd8b5bb52 100644 --- a/infini_train/include/nn/modules/module.h +++ b/infini_train/include/nn/modules/module.h @@ -1,20 +1,23 @@ #pragma once +#include + #include #include +#include #include #include +#include #include -#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" namespace infini_train { class Tensor; -class Device; class Optimizer; class HookHandle; template class HookHandleImpl; +enum class DataType : int8_t; } // namespace infini_train namespace infini_train::nn { diff --git a/infini_train/include/nn/modules/normalization.h b/infini_train/include/nn/modules/normalization.h index 9cd5be886..d82be3c3a 100644 --- a/infini_train/include/nn/modules/normalization.h +++ b/infini_train/include/nn/modules/normalization.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/include/nn/modules/sparse.h b/infini_train/include/nn/modules/sparse.h index 519751604..66b5f5e8f 100644 --- a/infini_train/include/nn/modules/sparse.h +++ b/infini_train/include/nn/modules/sparse.h @@ -8,7 +8,6 @@ namespace infini_train { class Tensor; -class Device; } // namespace infini_train namespace infini_train::nn { diff --git a/infini_train/include/nn/modules/transformer/causal_self_attention.h b/infini_train/include/nn/modules/transformer/causal_self_attention.h index a3fa6d257..5254251eb 100644 --- a/infini_train/include/nn/modules/transformer/causal_self_attention.h +++ b/infini_train/include/nn/modules/transformer/causal_self_attention.h @@ -1,11 +1,13 @@ #pragma once +#include + #include #include #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/modules/normalization.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn { diff --git a/infini_train/include/nn/modules/transformer/mlp.h b/infini_train/include/nn/modules/transformer/mlp.h index ecf5672b6..58c69a419 100644 --- a/infini_train/include/nn/modules/transformer/mlp.h +++ b/infini_train/include/nn/modules/transformer/mlp.h @@ -1,11 +1,14 @@ #pragma once +#include #include #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn { +struct TransformerConfig; + class MLP : public infini_train::nn::CloneableModule { public: static constexpr char kType[] = "MLP"; diff --git a/infini_train/include/nn/modules/transformer/moe/experts.h b/infini_train/include/nn/modules/transformer/moe/experts.h index a3dda7f02..f71fc88e2 100644 --- a/infini_train/include/nn/modules/transformer/moe/experts.h +++ b/infini_train/include/nn/modules/transformer/moe/experts.h @@ -1,10 +1,13 @@ #pragma once +#include + #include #include #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn::moe { diff --git a/infini_train/include/nn/modules/transformer/moe/moe_layer.h b/infini_train/include/nn/modules/transformer/moe/moe_layer.h index e5fdb3ab3..7bf39fee5 100644 --- a/infini_train/include/nn/modules/transformer/moe/moe_layer.h +++ b/infini_train/include/nn/modules/transformer/moe/moe_layer.h @@ -5,6 +5,7 @@ #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn::moe { diff --git a/infini_train/include/nn/modules/transformer/moe/moe_utils.h b/infini_train/include/nn/modules/transformer/moe/moe_utils.h index 5f4e2334a..763f71a2f 100644 --- a/infini_train/include/nn/modules/transformer/moe/moe_utils.h +++ b/infini_train/include/nn/modules/transformer/moe/moe_utils.h @@ -2,6 +2,7 @@ #include #include +#include #include #include "infini_train/include/nn/modules/transformer/transformer_config.h" diff --git a/infini_train/include/nn/modules/transformer/moe/router.h b/infini_train/include/nn/modules/transformer/moe/router.h index 1279c2179..9f9068606 100644 --- a/infini_train/include/nn/modules/transformer/moe/router.h +++ b/infini_train/include/nn/modules/transformer/moe/router.h @@ -5,6 +5,7 @@ #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn::moe { diff --git a/infini_train/include/nn/modules/transformer/transformer.h b/infini_train/include/nn/modules/transformer/transformer.h index 0471c32fe..d26a2e6e8 100644 --- a/infini_train/include/nn/modules/transformer/transformer.h +++ b/infini_train/include/nn/modules/transformer/transformer.h @@ -1,10 +1,12 @@ #pragma once +#include #include #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn { class TransformerLayer : public CloneableModule { diff --git a/infini_train/include/nn/modules/transformer/utils.h b/infini_train/include/nn/modules/transformer/utils.h index 1ebfc87a4..bc16654a9 100644 --- a/infini_train/include/nn/modules/transformer/utils.h +++ b/infini_train/include/nn/modules/transformer/utils.h @@ -4,6 +4,7 @@ #include #include +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" namespace infini_train { diff --git a/infini_train/include/nn/parallel/comm.h b/infini_train/include/nn/parallel/comm.h index 6418a1edd..2b6be9d2b 100644 --- a/infini_train/include/nn/parallel/comm.h +++ b/infini_train/include/nn/parallel/comm.h @@ -1,8 +1,8 @@ #pragma once -#include +#include -#include "infini_train/include/nn/parallel/reduce_op_type.h" +#include namespace infini_train { class Tensor; @@ -14,6 +14,7 @@ class Work; } // namespace infini_train::nn::parallel namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; std::shared_ptr AllReduce(const std::shared_ptr &tensor, ReduceOpType reduce_op, const ProcessGroup *pg = nullptr, bool async_op = false); diff --git a/infini_train/include/nn/parallel/ddp/distributed_data_parallel.h b/infini_train/include/nn/parallel/ddp/distributed_data_parallel.h index 216f7ed4c..514378fda 100644 --- a/infini_train/include/nn/parallel/ddp/distributed_data_parallel.h +++ b/infini_train/include/nn/parallel/ddp/distributed_data_parallel.h @@ -2,21 +2,25 @@ #include #include +#include +#include #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h" -#include "infini_train/include/nn/parallel/ddp/reducer.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" namespace infini_train { class Tensor; -class Device; + namespace nn::parallel { -class DistributedDataParallelConfig; class Rank; } // namespace nn::parallel } // namespace infini_train namespace infini_train::nn::parallel { +class ParamAndGradBucketGroup; +class ParamAndGradBuffer; +class ProcessGroup; +class Reducer; namespace { constexpr char kModuleName[] = "module"; diff --git a/infini_train/include/nn/parallel/ddp/distributed_optimizer.h b/infini_train/include/nn/parallel/ddp/distributed_optimizer.h index b27e6f7b0..9cf92d4f5 100644 --- a/infini_train/include/nn/parallel/ddp/distributed_optimizer.h +++ b/infini_train/include/nn/parallel/ddp/distributed_optimizer.h @@ -1,15 +1,19 @@ #pragma once -#include +#include + #include #include +#include #include #include #include "infini_train/include/optimizer.h" +#include "infini_train/include/tensor.h" namespace infini_train::nn { class Module; + namespace parallel { class ParamAndGradBuffer; class ParamAndGradBucketGroup; diff --git a/infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h b/infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h index a7866c4b3..a53478ab5 100644 --- a/infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h +++ b/infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h @@ -1,18 +1,21 @@ #pragma once +#include + #include #include -#include +#include #include #include #include #include -#include "infini_train/include/datatype.h" #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" namespace infini_train { class Tensor; +enum class DataType : int8_t; + namespace nn::parallel { class ProcessGroup; class Work; diff --git a/infini_train/include/nn/parallel/ddp/reducer.h b/infini_train/include/nn/parallel/ddp/reducer.h index e9d67fd52..1bdc21df5 100644 --- a/infini_train/include/nn/parallel/ddp/reducer.h +++ b/infini_train/include/nn/parallel/ddp/reducer.h @@ -1,16 +1,19 @@ #pragma once +#include +#include + #include #include #include #include -#include "infini_train/include/datatype.h" #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" namespace infini_train { class Tensor; -class Device; +enum class DataType : int8_t; + namespace autograd { class PostAccumulateGradHook; } // namespace autograd diff --git a/infini_train/include/nn/parallel/global.h b/infini_train/include/nn/parallel/global.h index 38694a91d..87f155a0c 100644 --- a/infini_train/include/nn/parallel/global.h +++ b/infini_train/include/nn/parallel/global.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include diff --git a/infini_train/include/nn/parallel/parallel_functional.h b/infini_train/include/nn/parallel/parallel_functional.h index fd1d290c2..c04d03425 100644 --- a/infini_train/include/nn/parallel/parallel_functional.h +++ b/infini_train/include/nn/parallel/parallel_functional.h @@ -1,15 +1,21 @@ #pragma once +#include + #include #include -#include "infini_train/include/device.h" -#include "infini_train/include/nn/parallel/reduce_op_type.h" +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm namespace infini_train { class Tensor; +class Device; + namespace nn { class Module; + namespace parallel { class ProcessGroup; } // namespace parallel diff --git a/infini_train/include/nn/parallel/pp/pipeline_parallel.h b/infini_train/include/nn/parallel/pp/pipeline_parallel.h index 25939bdc2..1849f3b3b 100644 --- a/infini_train/include/nn/parallel/pp/pipeline_parallel.h +++ b/infini_train/include/nn/parallel/pp/pipeline_parallel.h @@ -1,7 +1,10 @@ // pipeline_parallel.h #pragma once +#include + #include +#include #include #include "infini_train/include/nn/modules/module.h" @@ -10,6 +13,7 @@ namespace infini_train { class Tensor; class Device; class Optimizer; +enum class DataType : int8_t; } // namespace infini_train namespace infini_train::nn::parallel { diff --git a/infini_train/include/nn/parallel/pp/pipeline_schedule.h b/infini_train/include/nn/parallel/pp/pipeline_schedule.h index cae190f82..c61994c45 100644 --- a/infini_train/include/nn/parallel/pp/pipeline_schedule.h +++ b/infini_train/include/nn/parallel/pp/pipeline_schedule.h @@ -1,13 +1,16 @@ #pragma once +#include + #include +#include #include -#include "infini_train/include/datatype.h" - namespace infini_train { class Tensor; class Optimizer; +enum class DataType : int8_t; + namespace nn { class Module; } // namespace nn diff --git a/infini_train/include/nn/parallel/pp/pipeline_stage.h b/infini_train/include/nn/parallel/pp/pipeline_stage.h index 8dc0b8d33..8a95b2ac6 100644 --- a/infini_train/include/nn/parallel/pp/pipeline_stage.h +++ b/infini_train/include/nn/parallel/pp/pipeline_stage.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include @@ -7,8 +9,7 @@ namespace infini_train { class Tensor; -class Device; -class Optimizer; + namespace nn { class Module; } diff --git a/infini_train/include/nn/parallel/pp/send_recv.h b/infini_train/include/nn/parallel/pp/send_recv.h index df2386b45..dba51d93f 100644 --- a/infini_train/include/nn/parallel/pp/send_recv.h +++ b/infini_train/include/nn/parallel/pp/send_recv.h @@ -1,12 +1,13 @@ #pragma once +#include + #include #include -#include "infini_train/include/device.h" - namespace infini_train { class Tensor; +class Device; } // namespace infini_train namespace infini_train::nn::parallel { diff --git a/infini_train/include/nn/parallel/process_group.h b/infini_train/include/nn/parallel/process_group.h index 4f0daf877..0d383a917 100644 --- a/infini_train/include/nn/parallel/process_group.h +++ b/infini_train/include/nn/parallel/process_group.h @@ -1,26 +1,30 @@ #pragma once +#include + #include #include #include #include #include #include +#include #include +#include "infini_train/include/core/ccl/ccl_common.h" +#include "infini_train/include/core/runtime/runtime_common.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/parallel/reduce_op_type.h" namespace infini_train { class Tensor; + namespace core { -class CclComm; class CclImpl; class DeviceGuardImpl; -class Stream; } // namespace core namespace nn { -class Module; + namespace parallel { class Work; } // namespace parallel diff --git a/infini_train/include/nn/parallel/tensor_parallel.h b/infini_train/include/nn/parallel/tensor_parallel.h index 909aa5e54..86170a58e 100644 --- a/infini_train/include/nn/parallel/tensor_parallel.h +++ b/infini_train/include/nn/parallel/tensor_parallel.h @@ -1,6 +1,7 @@ #pragma once -#include +#include + #include #include @@ -9,7 +10,6 @@ namespace infini_train { class Tensor; -class Device; } // namespace infini_train namespace infini_train::nn::parallel { diff --git a/infini_train/include/nn/parallel/utils.h b/infini_train/include/nn/parallel/utils.h index 94702b68c..45347faf5 100644 --- a/infini_train/include/nn/parallel/utils.h +++ b/infini_train/include/nn/parallel/utils.h @@ -5,12 +5,16 @@ #include #include -#include "infini_train/include/nn/parallel/reduce_op_type.h" +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm namespace infini_train { class Tensor; + namespace nn { class Module; + namespace parallel { class ProcessGroup; } diff --git a/infini_train/include/nn/parallel/work.h b/infini_train/include/nn/parallel/work.h index 15d04d5fc..44b283d44 100644 --- a/infini_train/include/nn/parallel/work.h +++ b/infini_train/include/nn/parallel/work.h @@ -5,10 +5,13 @@ #include #include -#include "infini_train/include/core/ccl/ccl_common.h" -#include "infini_train/include/core/runtime/runtime_common.h" #include "infini_train/include/device.h" +namespace infini_train::core { +class CclComm; +class Event; +} // namespace infini_train::core + namespace infini_train::nn::parallel { class Work { diff --git a/infini_train/include/profiler.h b/infini_train/include/profiler.h index adea9e3fb..025ad1074 100644 --- a/infini_train/include/profiler.h +++ b/infini_train/include/profiler.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include @@ -8,8 +10,6 @@ #include #include -#include "glog/logging.h" - #include "infini_train/include/device.h" namespace infini_train { diff --git a/infini_train/include/tensor.h b/infini_train/include/tensor.h index 3aabe28f1..900507983 100644 --- a/infini_train/include/tensor.h +++ b/infini_train/include/tensor.h @@ -1,14 +1,16 @@ #pragma once +#include + #include #include #include #include #include +#include #include #include "Eigen/Dense" -#include "glog/logging.h" #include "infini_train/include/datatype.h" #include "infini_train/include/device.h" diff --git a/infini_train/include/utils/precision_check_config.h b/infini_train/include/utils/precision_check_config.h index f272775e7..fd4425285 100644 --- a/infini_train/include/utils/precision_check_config.h +++ b/infini_train/include/utils/precision_check_config.h @@ -1,7 +1,6 @@ #pragma once #include -#include namespace infini_train { namespace utils { diff --git a/infini_train/include/utils/precision_checker.h b/infini_train/include/utils/precision_checker.h index 87214fb5d..59225193f 100644 --- a/infini_train/include/utils/precision_checker.h +++ b/infini_train/include/utils/precision_checker.h @@ -4,11 +4,12 @@ #include #include -#include "infini_train/include/utils/precision_check_config.h" +namespace infini_train::utils { +struct PrecisionCheckConfig; +} // namespace infini_train::utils namespace infini_train { class Tensor; -class HookHandle; namespace autograd { class Function; diff --git a/infini_train/include/utils/string_utils.h b/infini_train/include/utils/string_utils.h index 070bb992c..aa75c186a 100644 --- a/infini_train/include/utils/string_utils.h +++ b/infini_train/include/utils/string_utils.h @@ -1,5 +1,7 @@ #pragma once +#include + #include #include diff --git a/infini_train/src/autograd/accumulate.cc b/infini_train/src/autograd/accumulate.cc index 0c34819f6..b16c5fde7 100644 --- a/infini_train/src/autograd/accumulate.cc +++ b/infini_train/src/autograd/accumulate.cc @@ -1,9 +1,15 @@ #include "infini_train/include/autograd/accumulate.h" +#include +#include +#include + #include "glog/logging.h" #include "infini_train/include/autograd/function_hook.h" #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/activations.cc b/infini_train/src/autograd/activations.cc index 6894788a8..c224f15fc 100644 --- a/infini_train/src/autograd/activations.cc +++ b/infini_train/src/autograd/activations.cc @@ -1,7 +1,10 @@ #include "infini_train/include/autograd/activations.h" +#include + #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/comm.cc b/infini_train/src/autograd/comm.cc index cb914b028..67d28ecbc 100644 --- a/infini_train/src/autograd/comm.cc +++ b/infini_train/src/autograd/comm.cc @@ -1,11 +1,13 @@ #include "infini_train/include/autograd/comm.h" #include +#include #include #include "glog/logging.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/tensor.h" namespace infini_train::autograd::comm { diff --git a/infini_train/src/autograd/elementwise.cc b/infini_train/src/autograd/elementwise.cc index f9403d8dd..0ef99f025 100644 --- a/infini_train/src/autograd/elementwise.cc +++ b/infini_train/src/autograd/elementwise.cc @@ -1,7 +1,11 @@ #include "infini_train/include/autograd/elementwise.h" +#include +#include + #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/function.cc b/infini_train/src/autograd/function.cc index 70130822b..68d3a0b78 100644 --- a/infini_train/src/autograd/function.cc +++ b/infini_train/src/autograd/function.cc @@ -1,12 +1,13 @@ #include "infini_train/include/autograd/function.h" +#include + #include "glog/logging.h" #include "infini_train/include/autocast.h" #include "infini_train/include/autograd/accumulate.h" -#include "infini_train/include/autograd/function_hook.h" #include "infini_train/include/autograd/grad_mode.h" -#include "infini_train/include/common/hook.h" +#include "infini_train/include/common/hook.h" // IWYU pragma: keep #include "infini_train/include/core/runtime/device_guard.h" #include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" diff --git a/infini_train/src/autograd/function_hook.cc b/infini_train/src/autograd/function_hook.cc index e82c8145f..0fa057417 100644 --- a/infini_train/src/autograd/function_hook.cc +++ b/infini_train/src/autograd/function_hook.cc @@ -4,7 +4,10 @@ #include "infini_train/include/nn/parallel/comm.h" #include "infini_train/include/nn/parallel/process_group.h" -#include "infini_train/include/tensor.h" + +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm namespace infini_train::autograd { AllReducePostAccumulateHook::AllReducePostAccumulateHook(infini_train::nn::parallel::comm::ReduceOpType reduce_op, diff --git a/infini_train/src/autograd/gather.cc b/infini_train/src/autograd/gather.cc index becd497de..1b504013f 100644 --- a/infini_train/src/autograd/gather.cc +++ b/infini_train/src/autograd/gather.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/linear.cc b/infini_train/src/autograd/linear.cc index 1351d87be..580211fce 100644 --- a/infini_train/src/autograd/linear.cc +++ b/infini_train/src/autograd/linear.cc @@ -1,7 +1,10 @@ #include "infini_train/include/autograd/linear.h" +#include + #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/loss.cc b/infini_train/src/autograd/loss.cc index 5ad663984..ff9e9c30b 100644 --- a/infini_train/src/autograd/loss.cc +++ b/infini_train/src/autograd/loss.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/matmul.cc b/infini_train/src/autograd/matmul.cc index a78b95336..6247dfd80 100644 --- a/infini_train/src/autograd/matmul.cc +++ b/infini_train/src/autograd/matmul.cc @@ -1,7 +1,10 @@ #include "infini_train/include/autograd/matmul.h" +#include + #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/no_op.cc b/infini_train/src/autograd/no_op.cc index b4247dec7..7a2eb21dc 100644 --- a/infini_train/src/autograd/no_op.cc +++ b/infini_train/src/autograd/no_op.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/normalization.cc b/infini_train/src/autograd/normalization.cc index eca830b06..7916ccc17 100644 --- a/infini_train/src/autograd/normalization.cc +++ b/infini_train/src/autograd/normalization.cc @@ -1,7 +1,10 @@ #include "infini_train/include/autograd/normalization.h" +#include + #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/outer.cc b/infini_train/src/autograd/outer.cc index d3979a900..ed005a37d 100644 --- a/infini_train/src/autograd/outer.cc +++ b/infini_train/src/autograd/outer.cc @@ -1,10 +1,12 @@ #include "infini_train/include/autograd/outer.h" #include +#include #include #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/reduction.cc b/infini_train/src/autograd/reduction.cc index 2526fac7c..41d5c3e9c 100644 --- a/infini_train/src/autograd/reduction.cc +++ b/infini_train/src/autograd/reduction.cc @@ -5,6 +5,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/scatter.cc b/infini_train/src/autograd/scatter.cc index 351afe2d3..ae352d552 100644 --- a/infini_train/src/autograd/scatter.cc +++ b/infini_train/src/autograd/scatter.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/scatter_add.cc b/infini_train/src/autograd/scatter_add.cc index ab9d7d113..ebd34f28b 100644 --- a/infini_train/src/autograd/scatter_add.cc +++ b/infini_train/src/autograd/scatter_add.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/softmax.cc b/infini_train/src/autograd/softmax.cc index b368b8bf7..e2138c4b3 100644 --- a/infini_train/src/autograd/softmax.cc +++ b/infini_train/src/autograd/softmax.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/sparse.cc b/infini_train/src/autograd/sparse.cc index 5f515bdc1..20c524eda 100644 --- a/infini_train/src/autograd/sparse.cc +++ b/infini_train/src/autograd/sparse.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/topk.cc b/infini_train/src/autograd/topk.cc index 3d9375013..f3ac04dde 100644 --- a/infini_train/src/autograd/topk.cc +++ b/infini_train/src/autograd/topk.cc @@ -2,6 +2,7 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/autograd/transform.cc b/infini_train/src/autograd/transform.cc index 5a6d31f12..b110b2491 100644 --- a/infini_train/src/autograd/transform.cc +++ b/infini_train/src/autograd/transform.cc @@ -1,5 +1,8 @@ #include "infini_train/include/autograd/transform.h" +#include "glog/logging.h" + +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/checkpoint/checkpoint.cc b/infini_train/src/checkpoint/checkpoint.cc index ad51bab1c..1eb7842f9 100644 --- a/infini_train/src/checkpoint/checkpoint.cc +++ b/infini_train/src/checkpoint/checkpoint.cc @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -11,12 +12,15 @@ #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/lr_scheduler.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" namespace infini_train { +enum class DataType : int8_t; + namespace { constexpr uint32_t kCkptMagic = 0x54504B43; // CKPT constexpr uint32_t kCkptVersion = 1; diff --git a/infini_train/src/checkpoint/checkpoint_manager.cc b/infini_train/src/checkpoint/checkpoint_manager.cc index c6e31cddb..500bd3008 100644 --- a/infini_train/src/checkpoint/checkpoint_manager.cc +++ b/infini_train/src/checkpoint/checkpoint_manager.cc @@ -1,19 +1,21 @@ #include "infini_train/include/checkpoint/checkpoint_manager.h" -#include -#include +#include +#include #include #include #include #include +#include #include #include #include "glog/logging.h" +#include "infini_train/include/checkpoint/checkpoint.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/global.h" -#include "infini_train/include/tensor.h" +#include "infini_train/include/nn/parallel/rank.h" using namespace infini_train; namespace nn = infini_train::nn; diff --git a/infini_train/src/core/ccl/ccl.cc b/infini_train/src/core/ccl/ccl.cc index 6438e6fbe..1e06d7d64 100644 --- a/infini_train/src/core/ccl/ccl.cc +++ b/infini_train/src/core/ccl/ccl.cc @@ -2,13 +2,24 @@ #include #include +#include +#include #include #include "glog/logging.h" -#include "infini_train/include/nn/parallel/reduce_op_type.h" +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm + +namespace infini_train { +enum class DataType : int8_t; +} // namespace infini_train namespace infini_train::core { +class CclComm; +class CclUniqueId; +enum class CclStatus : int32_t; void CclImpl::GroupStart() const { LOG(FATAL) << "CclImpl::GroupStart is not implemented."; } diff --git a/infini_train/src/core/ccl/ccl_utils.cc b/infini_train/src/core/ccl/ccl_utils.cc index 1368993a9..0b29bc97f 100644 --- a/infini_train/src/core/ccl/ccl_utils.cc +++ b/infini_train/src/core/ccl/ccl_utils.cc @@ -10,6 +10,8 @@ #include "glog/logging.h" +#include "infini_train/include/core/ccl/ccl_common.h" + namespace infini_train::core { namespace { std::string UniqueIdFileName(const std::string &pg_name) { diff --git a/infini_train/src/core/privateuse1_backend.cc b/infini_train/src/core/privateuse1_backend.cc index ebe4dce93..c328436bf 100644 --- a/infini_train/src/core/privateuse1_backend.cc +++ b/infini_train/src/core/privateuse1_backend.cc @@ -3,11 +3,13 @@ #include #include #include +#include #include #include "glog/logging.h" #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" namespace infini_train::core { diff --git a/infini_train/src/core/runtime/cpu/cpu_guard_impl.cc b/infini_train/src/core/runtime/cpu/cpu_guard_impl.cc index c298a4132..57ef2cb3d 100644 --- a/infini_train/src/core/runtime/cpu/cpu_guard_impl.cc +++ b/infini_train/src/core/runtime/cpu/cpu_guard_impl.cc @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include "glog/logging.h" diff --git a/infini_train/src/core/runtime/cpu/cpu_guard_impl.h b/infini_train/src/core/runtime/cpu/cpu_guard_impl.h index d30355b16..de412e183 100644 --- a/infini_train/src/core/runtime/cpu/cpu_guard_impl.h +++ b/infini_train/src/core/runtime/cpu/cpu_guard_impl.h @@ -1,8 +1,13 @@ #pragma once +#include +#include + #include #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/core/runtime/runtime_common.h" +#include "infini_train/include/device.h" namespace infini_train::core::cpu { diff --git a/infini_train/src/core/runtime/device_guard.cc b/infini_train/src/core/runtime/device_guard.cc index d35dc74fe..3428d0720 100644 --- a/infini_train/src/core/runtime/device_guard.cc +++ b/infini_train/src/core/runtime/device_guard.cc @@ -2,6 +2,8 @@ #include #include +#include +#include #include #include "glog/logging.h" diff --git a/infini_train/src/dataloader.cc b/infini_train/src/dataloader.cc index 198536779..fd8f210c8 100644 --- a/infini_train/src/dataloader.cc +++ b/infini_train/src/dataloader.cc @@ -1,11 +1,15 @@ #include "infini_train/include/dataloader.h" +#include + #include #include #include #include #include +#include #include +#include #include "glog/logging.h" diff --git a/infini_train/src/datatype.cc b/infini_train/src/datatype.cc index c2a4ccd98..35f4d11e1 100644 --- a/infini_train/src/datatype.cc +++ b/infini_train/src/datatype.cc @@ -1,9 +1,7 @@ #include "infini_train/include/datatype.h" #include -#include #include -#include #include namespace infini_train { diff --git a/infini_train/src/kernels/cpu/accumulate_grad.cc b/infini_train/src/kernels/cpu/accumulate_grad.cc index cfe85b9c2..6146cae12 100644 --- a/infini_train/src/kernels/cpu/accumulate_grad.cc +++ b/infini_train/src/kernels/cpu/accumulate_grad.cc @@ -1,6 +1,10 @@ +#include + +#include #include #include +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/cast.cc b/infini_train/src/kernels/cpu/cast.cc index c3a2e595f..b55d1b823 100644 --- a/infini_train/src/kernels/cpu/cast.cc +++ b/infini_train/src/kernels/cpu/cast.cc @@ -1,12 +1,21 @@ +#include +#include + #include +#include #include "infini_train/include/common/cpu/common_cpu.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/dtype_dispatch.h" #include "infini_train/include/tensor.h" #include "infini_train/src/core/runtime/cpu/cpu_dispatch.h" +namespace infini_train { +enum class DataType : int8_t; +} // namespace infini_train + namespace infini_train::kernels::cpu { std::shared_ptr Cast(std::shared_ptr input, DataType dtype) { diff --git a/infini_train/src/kernels/cpu/concat.cc b/infini_train/src/kernels/cpu/concat.cc index 169cc5571..c1a54456f 100644 --- a/infini_train/src/kernels/cpu/concat.cc +++ b/infini_train/src/kernels/cpu/concat.cc @@ -1,10 +1,19 @@ +#include + +#include #include +#include +#include #include #include +#include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/cross_entropy.cc b/infini_train/src/kernels/cpu/cross_entropy.cc index f520b2e96..e13f32666 100644 --- a/infini_train/src/kernels/cpu/cross_entropy.cc +++ b/infini_train/src/kernels/cpu/cross_entropy.cc @@ -1,11 +1,18 @@ +#include + #include #include +#include #include #include +#include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/elementwise.cc b/infini_train/src/kernels/cpu/elementwise.cc index 213abdcfb..f09176f5b 100644 --- a/infini_train/src/kernels/cpu/elementwise.cc +++ b/infini_train/src/kernels/cpu/elementwise.cc @@ -1,12 +1,17 @@ +#include +#include + #include #include #include #include #include +#include #include "glog/logging.h" #include "infini_train/include/common/common.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/embedding.cc b/infini_train/src/kernels/cpu/embedding.cc index a1da926f3..9f85596e1 100644 --- a/infini_train/src/kernels/cpu/embedding.cc +++ b/infini_train/src/kernels/cpu/embedding.cc @@ -1,7 +1,13 @@ +#include + +#include #include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/fill.cc b/infini_train/src/kernels/cpu/fill.cc index 7bcda6bdc..8713d95d1 100644 --- a/infini_train/src/kernels/cpu/fill.cc +++ b/infini_train/src/kernels/cpu/fill.cc @@ -1,7 +1,10 @@ -#include "glog/logging.h" +#include +#include +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/dtype_dispatch.h" +#include "infini_train/include/scalar.h" #include "infini_train/include/tensor.h" #include "infini_train/src/core/runtime/cpu/cpu_dispatch.h" diff --git a/infini_train/src/kernels/cpu/gather.cc b/infini_train/src/kernels/cpu/gather.cc index af39fc0f5..1f08cd003 100644 --- a/infini_train/src/kernels/cpu/gather.cc +++ b/infini_train/src/kernels/cpu/gather.cc @@ -1,9 +1,14 @@ -#include +#include + #include #include +#include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/layernorm.cc b/infini_train/src/kernels/cpu/layernorm.cc index 46a8f0944..0ab9bddb8 100644 --- a/infini_train/src/kernels/cpu/layernorm.cc +++ b/infini_train/src/kernels/cpu/layernorm.cc @@ -1,9 +1,14 @@ +#include + #include #include #include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/linear.cc b/infini_train/src/kernels/cpu/linear.cc index bc4724161..b4e46038b 100644 --- a/infini_train/src/kernels/cpu/linear.cc +++ b/infini_train/src/kernels/cpu/linear.cc @@ -1,10 +1,12 @@ #include #include -#include -#include +#include +#include "Eigen/Dense" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/matmul.cc b/infini_train/src/kernels/cpu/matmul.cc index 0f4a22536..0d1bf943e 100644 --- a/infini_train/src/kernels/cpu/matmul.cc +++ b/infini_train/src/kernels/cpu/matmul.cc @@ -1,10 +1,14 @@ #include +#include #include #include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/no_op.cc b/infini_train/src/kernels/cpu/no_op.cc index 15681854b..e7b6fa45b 100644 --- a/infini_train/src/kernels/cpu/no_op.cc +++ b/infini_train/src/kernels/cpu/no_op.cc @@ -1,8 +1,13 @@ +#include + +#include #include #include +#include #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/outer.cc b/infini_train/src/kernels/cpu/outer.cc index b41c9551b..ed3ec1153 100644 --- a/infini_train/src/kernels/cpu/outer.cc +++ b/infini_train/src/kernels/cpu/outer.cc @@ -1,10 +1,13 @@ #include -#include #include #include +#include +#include "Eigen/Dense" #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/reduction.cc b/infini_train/src/kernels/cpu/reduction.cc index 602aefb25..f67103734 100644 --- a/infini_train/src/kernels/cpu/reduction.cc +++ b/infini_train/src/kernels/cpu/reduction.cc @@ -1,3 +1,6 @@ +#include + +#include #include #include #include @@ -6,6 +9,8 @@ #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/scatter.cc b/infini_train/src/kernels/cpu/scatter.cc index 1a9cf62ef..c8d533fc3 100644 --- a/infini_train/src/kernels/cpu/scatter.cc +++ b/infini_train/src/kernels/cpu/scatter.cc @@ -1,10 +1,16 @@ +#include + #include #include #include +#include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/sigmoid.cc b/infini_train/src/kernels/cpu/sigmoid.cc index 8163a0967..59dac9054 100644 --- a/infini_train/src/kernels/cpu/sigmoid.cc +++ b/infini_train/src/kernels/cpu/sigmoid.cc @@ -1,8 +1,10 @@ +#include + #include #include -#include "glog/logging.h" - +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/slice.cc b/infini_train/src/kernels/cpu/slice.cc index c3296ce76..e04cb251a 100644 --- a/infini_train/src/kernels/cpu/slice.cc +++ b/infini_train/src/kernels/cpu/slice.cc @@ -1,9 +1,12 @@ -#include +#include + #include #include +#include #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/softmax.cc b/infini_train/src/kernels/cpu/softmax.cc index f711fbdce..2d15f58b7 100644 --- a/infini_train/src/kernels/cpu/softmax.cc +++ b/infini_train/src/kernels/cpu/softmax.cc @@ -1,9 +1,10 @@ +#include #include #include #include +#include -#include "glog/logging.h" - +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/split.cc b/infini_train/src/kernels/cpu/split.cc index d8e3ed9ef..d2987bf1f 100644 --- a/infini_train/src/kernels/cpu/split.cc +++ b/infini_train/src/kernels/cpu/split.cc @@ -1,11 +1,18 @@ +#include +#include + #include +#include #include #include +#include #include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/stack.cc b/infini_train/src/kernels/cpu/stack.cc index 0ada64758..dcb7f5256 100644 --- a/infini_train/src/kernels/cpu/stack.cc +++ b/infini_train/src/kernels/cpu/stack.cc @@ -1,9 +1,16 @@ +#include +#include + +#include +#include #include #include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/swiglu.cc b/infini_train/src/kernels/cpu/swiglu.cc index c87500c06..f1a78994d 100644 --- a/infini_train/src/kernels/cpu/swiglu.cc +++ b/infini_train/src/kernels/cpu/swiglu.cc @@ -1,8 +1,13 @@ +#include + #include #include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/topk.cc b/infini_train/src/kernels/cpu/topk.cc index fb4e63ff0..ec69a837f 100644 --- a/infini_train/src/kernels/cpu/topk.cc +++ b/infini_train/src/kernels/cpu/topk.cc @@ -1,11 +1,17 @@ +#include + #include #include #include #include +#include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/kernels/cpu/transform.cc b/infini_train/src/kernels/cpu/transform.cc index 48063c7a0..188db7267 100644 --- a/infini_train/src/kernels/cpu/transform.cc +++ b/infini_train/src/kernels/cpu/transform.cc @@ -1,10 +1,19 @@ +#include + #include #include #include +#include #include +#include +#include +#include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/lr_scheduler.cc b/infini_train/src/lr_scheduler.cc index b6b5b2aba..d065469ef 100644 --- a/infini_train/src/lr_scheduler.cc +++ b/infini_train/src/lr_scheduler.cc @@ -1,8 +1,11 @@ #include "infini_train/include/lr_scheduler.h" +#include + #include #include #include +#include #include #include diff --git a/infini_train/src/nn/functional.cc b/infini_train/src/nn/functional.cc index c33e23684..dc659b2de 100644 --- a/infini_train/src/nn/functional.cc +++ b/infini_train/src/nn/functional.cc @@ -9,6 +9,7 @@ #include "infini_train/include/autograd/reduction.h" #include "infini_train/include/autograd/softmax.h" #include "infini_train/include/autograd/transform.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/init.cc b/infini_train/src/nn/init.cc index 79b4b48b1..fd1b03c99 100644 --- a/infini_train/src/nn/init.cc +++ b/infini_train/src/nn/init.cc @@ -1,11 +1,15 @@ #include "infini_train/include/nn/init.h" -#include +#include +#include #include #include +#include #include +#include #include #include +#include #ifdef USE_OMP #include @@ -14,9 +18,14 @@ #include "glog/logging.h" #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/tensor.h" +namespace infini_train::core { +class Stream; +} // namespace infini_train::core + namespace infini_train::nn::init { namespace { constexpr int kRandomSeed = 42; diff --git a/infini_train/src/nn/lora/lora_config.cc b/infini_train/src/nn/lora/lora_config.cc index fa068ba20..3469ff2d2 100644 --- a/infini_train/src/nn/lora/lora_config.cc +++ b/infini_train/src/nn/lora/lora_config.cc @@ -1,5 +1,7 @@ #include "infini_train/include/nn/lora/lora_config.h" +#include + namespace infini_train::nn::lora { float LoRAConfig::Scaling() const { return alpha / static_cast(rank); } diff --git a/infini_train/src/nn/lora/lora_linear.cc b/infini_train/src/nn/lora/lora_linear.cc index 0a2d1098d..9dd945260 100644 --- a/infini_train/src/nn/lora/lora_linear.cc +++ b/infini_train/src/nn/lora/lora_linear.cc @@ -1,14 +1,19 @@ #include "infini_train/include/nn/lora/lora_linear.h" -#include #include -#include +#include +#include +#include #include +#include "glog/logging.h" + #include "infini_train/include/autograd/linear.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/linear.h" +#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/tensor.h" namespace infini_train::nn::lora { diff --git a/infini_train/src/nn/lora/lora_parallel_linear.cc b/infini_train/src/nn/lora/lora_parallel_linear.cc index 9b038e2d4..303bda745 100644 --- a/infini_train/src/nn/lora/lora_parallel_linear.cc +++ b/infini_train/src/nn/lora/lora_parallel_linear.cc @@ -1,17 +1,20 @@ #include "infini_train/include/nn/lora/lora_parallel_linear.h" -#include #include +#include +#include +#include #include #include "glog/logging.h" #include "infini_train/include/autograd/linear.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/init.h" -#include "infini_train/include/nn/modules/linear.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/lora/lora_utils.cc b/infini_train/src/nn/lora/lora_utils.cc index 45b6c243e..e977586be 100644 --- a/infini_train/src/nn/lora/lora_utils.cc +++ b/infini_train/src/nn/lora/lora_utils.cc @@ -1,18 +1,24 @@ #include "infini_train/include/nn/lora/lora_utils.h" +#include + #include #include +#include #include #include #include #include #include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/functional.h" +#include "infini_train/include/nn/lora/lora_config.h" #include "infini_train/include/nn/lora/lora_linear.h" #include "infini_train/include/nn/lora/lora_parallel_linear.h" #include "infini_train/include/nn/modules/activations.h" @@ -23,7 +29,6 @@ #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" -#include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/tensor.h" namespace infini_train::nn::lora { diff --git a/infini_train/src/nn/modules/activations.cc b/infini_train/src/nn/modules/activations.cc index 37a578059..3460f176e 100644 --- a/infini_train/src/nn/modules/activations.cc +++ b/infini_train/src/nn/modules/activations.cc @@ -1,5 +1,6 @@ #include "infini_train/include/nn/modules/activations.h" +#include #include #include diff --git a/infini_train/src/nn/modules/container.cc b/infini_train/src/nn/modules/container.cc index 33707b636..306674347 100644 --- a/infini_train/src/nn/modules/container.cc +++ b/infini_train/src/nn/modules/container.cc @@ -1,10 +1,12 @@ #include "infini_train/include/nn/modules/container.h" #include +#include #include +#include #include -#include "infini_train/include/tensor.h" +#include "glog/logging.h" namespace infini_train::nn { Sequential::Sequential(std::vector> &&layers) : CloneableModule(kType) { diff --git a/infini_train/src/nn/modules/linear.cc b/infini_train/src/nn/modules/linear.cc index 7b93fa944..62fa36a91 100644 --- a/infini_train/src/nn/modules/linear.cc +++ b/infini_train/src/nn/modules/linear.cc @@ -2,9 +2,12 @@ #include #include +#include +#include #include #include "infini_train/include/autograd/linear.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/modules/loss.cc b/infini_train/src/nn/modules/loss.cc index a3f9763d2..6121f16f6 100644 --- a/infini_train/src/nn/modules/loss.cc +++ b/infini_train/src/nn/modules/loss.cc @@ -4,7 +4,6 @@ #include #include "infini_train/include/autograd/loss.h" -#include "infini_train/include/tensor.h" namespace infini_train::nn { std::vector> diff --git a/infini_train/src/nn/modules/module.cc b/infini_train/src/nn/modules/module.cc index f81681200..b44d34bc5 100644 --- a/infini_train/src/nn/modules/module.cc +++ b/infini_train/src/nn/modules/module.cc @@ -1,7 +1,10 @@ #include "infini_train/include/nn/modules/module.h" #include +#include +#include #include +#include #include #include #include @@ -9,7 +12,7 @@ #include "glog/logging.h" #include "infini_train/include/autograd/function.h" -#include "infini_train/include/common/hook.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "infini_train/include/utils/global_module_hook_registry.h" diff --git a/infini_train/src/nn/modules/normalization.cc b/infini_train/src/nn/modules/normalization.cc index 4bd0b0dab..0866d51a2 100644 --- a/infini_train/src/nn/modules/normalization.cc +++ b/infini_train/src/nn/modules/normalization.cc @@ -1,9 +1,12 @@ #include "infini_train/include/nn/modules/normalization.h" #include +#include +#include #include #include "infini_train/include/autograd/normalization.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/init.h" diff --git a/infini_train/src/nn/modules/sparse.cc b/infini_train/src/nn/modules/sparse.cc index 9314fe6d3..8cdb458c1 100644 --- a/infini_train/src/nn/modules/sparse.cc +++ b/infini_train/src/nn/modules/sparse.cc @@ -1,9 +1,14 @@ #include "infini_train/include/nn/modules/sparse.h" +#include + #include +#include +#include #include #include "infini_train/include/autograd/sparse.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/modules/transformer/causal_self_attention.cc b/infini_train/src/nn/modules/transformer/causal_self_attention.cc index 31676b1b4..5a0eba568 100644 --- a/infini_train/src/nn/modules/transformer/causal_self_attention.cc +++ b/infini_train/src/nn/modules/transformer/causal_self_attention.cc @@ -3,15 +3,16 @@ #include #include #include +#include +#include #include +#include #include #include "glog/logging.h" #include "infini_train/include/nn/functional.h" -#include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/normalization.h" -#include "infini_train/include/nn/modules/sparse.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/modules/transformer/utils.h" #include "infini_train/include/nn/parallel/global.h" diff --git a/infini_train/src/nn/modules/transformer/mlp.cc b/infini_train/src/nn/modules/transformer/mlp.cc index 56f9329bb..2a72aa761 100644 --- a/infini_train/src/nn/modules/transformer/mlp.cc +++ b/infini_train/src/nn/modules/transformer/mlp.cc @@ -1,20 +1,20 @@ #include "infini_train/include/nn/modules/transformer/mlp.h" +#include + #include +#include +#include +#include #include #include "glog/logging.h" -#include "infini_train/include/nn/functional.h" -#include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/activations.h" -#include "infini_train/include/nn/modules/normalization.h" -#include "infini_train/include/nn/modules/sparse.h" #include "infini_train/include/nn/modules/transformer/moe/moe_utils.h" #include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" -#include "infini_train/include/tensor.h" namespace infini_train::nn { diff --git a/infini_train/src/nn/modules/transformer/moe/experts.cc b/infini_train/src/nn/modules/transformer/moe/experts.cc index ede7bc999..3468ab1cd 100644 --- a/infini_train/src/nn/modules/transformer/moe/experts.cc +++ b/infini_train/src/nn/modules/transformer/moe/experts.cc @@ -1,7 +1,9 @@ #include "infini_train/include/nn/modules/transformer/moe/experts.h" #include +#include #include +#include #include #include "glog/logging.h" diff --git a/infini_train/src/nn/modules/transformer/moe/moe_layer.cc b/infini_train/src/nn/modules/transformer/moe/moe_layer.cc index 1e15fe814..7b47113a4 100644 --- a/infini_train/src/nn/modules/transformer/moe/moe_layer.cc +++ b/infini_train/src/nn/modules/transformer/moe/moe_layer.cc @@ -1,6 +1,9 @@ #include "infini_train/include/nn/modules/transformer/moe/moe_layer.h" #include +#include +#include +#include #include #include "glog/logging.h" @@ -8,7 +11,6 @@ #include "infini_train/include/nn/modules/transformer/moe/experts.h" #include "infini_train/include/nn/modules/transformer/moe/moe_utils.h" #include "infini_train/include/nn/modules/transformer/moe/router.h" -#include "infini_train/include/tensor.h" namespace infini_train::nn::moe { diff --git a/infini_train/src/nn/modules/transformer/moe/moe_utils.cc b/infini_train/src/nn/modules/transformer/moe/moe_utils.cc index ea272f1f6..7344966a4 100644 --- a/infini_train/src/nn/modules/transformer/moe/moe_utils.cc +++ b/infini_train/src/nn/modules/transformer/moe/moe_utils.cc @@ -1,10 +1,15 @@ #include "infini_train/include/nn/modules/transformer/moe/moe_utils.h" +#include +#include + #include "glog/logging.h" #include "infini_train/include/autograd/scatter.h" #include "infini_train/include/autograd/scatter_add.h" #include "infini_train/include/autograd/topk.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/modules/transformer/moe/router.cc b/infini_train/src/nn/modules/transformer/moe/router.cc index b045400aa..b4dd8d89d 100644 --- a/infini_train/src/nn/modules/transformer/moe/router.cc +++ b/infini_train/src/nn/modules/transformer/moe/router.cc @@ -1,14 +1,16 @@ #include "infini_train/include/nn/modules/transformer/moe/router.h" +#include + #include +#include +#include #include #include "glog/logging.h" #include "infini_train/include/autograd/linear.h" -#include "infini_train/include/autograd/scatter.h" -#include "infini_train/include/autograd/topk.h" -#include "infini_train/include/nn/functional.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/transformer/moe/moe_utils.h" #include "infini_train/include/nn/parallel/global.h" diff --git a/infini_train/src/nn/modules/transformer/moe/token_dispatcher.cc b/infini_train/src/nn/modules/transformer/moe/token_dispatcher.cc index ed7090dc4..9a73455d1 100644 --- a/infini_train/src/nn/modules/transformer/moe/token_dispatcher.cc +++ b/infini_train/src/nn/modules/transformer/moe/token_dispatcher.cc @@ -1,10 +1,13 @@ #include "infini_train/include/nn/modules/transformer/moe/token_dispatcher.h" +#include + #include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" namespace infini_train::nn::moe { diff --git a/infini_train/src/nn/modules/transformer/transformer.cc b/infini_train/src/nn/modules/transformer/transformer.cc index 133577d21..3aa609c96 100644 --- a/infini_train/src/nn/modules/transformer/transformer.cc +++ b/infini_train/src/nn/modules/transformer/transformer.cc @@ -1,14 +1,21 @@ #include "infini_train/include/nn/modules/transformer/transformer.h" +#include + #include -#include #include #include +#include +#include +#include +#include #include #include "glog/logging.h" #include "infini_train/include/autograd/grad_mode.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/container.h" @@ -21,6 +28,7 @@ #include "infini_train/include/nn/modules/transformer/utils.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/modules/transformer/transformer_config.cc b/infini_train/src/nn/modules/transformer/transformer_config.cc index e992f9474..87a3b354e 100644 --- a/infini_train/src/nn/modules/transformer/transformer_config.cc +++ b/infini_train/src/nn/modules/transformer/transformer_config.cc @@ -1,7 +1,14 @@ #include "infini_train/include/nn/modules/transformer/transformer_config.h" +// std::pair structured bindings are provided by . +// IWYU pragma: no_include + +#include + #include +#include #include +#include #include "glog/logging.h" diff --git a/infini_train/src/nn/modules/transformer/utils.cc b/infini_train/src/nn/modules/transformer/utils.cc index 3f41996be..eaf373fbc 100644 --- a/infini_train/src/nn/modules/transformer/utils.cc +++ b/infini_train/src/nn/modules/transformer/utils.cc @@ -1,11 +1,14 @@ #include "infini_train/include/nn/modules/transformer/utils.h" #include +#include #include +#include #include #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/init.h" diff --git a/infini_train/src/nn/parallel/comm.cc b/infini_train/src/nn/parallel/comm.cc index b6115aa95..cb8a4b502 100644 --- a/infini_train/src/nn/parallel/comm.cc +++ b/infini_train/src/nn/parallel/comm.cc @@ -1,9 +1,11 @@ #include "infini_train/include/nn/parallel/comm.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/parallel/process_group.h" #include "infini_train/include/tensor.h" namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; std::shared_ptr AllReduce(const std::shared_ptr &tensor, ReduceOpType reduce_op, const ProcessGroup *pg, bool async_op) { diff --git a/infini_train/src/nn/parallel/data_parallel.cc b/infini_train/src/nn/parallel/data_parallel.cc index cf16f6c39..fb7cbcb9f 100644 --- a/infini_train/src/nn/parallel/data_parallel.cc +++ b/infini_train/src/nn/parallel/data_parallel.cc @@ -3,7 +3,11 @@ #include #include #include +#include +#include #include +#include +#include #include #include "glog/logging.h" diff --git a/infini_train/src/nn/parallel/ddp/distributed_data_parallel.cc b/infini_train/src/nn/parallel/ddp/distributed_data_parallel.cc index 252ae6398..cd21002bd 100644 --- a/infini_train/src/nn/parallel/ddp/distributed_data_parallel.cc +++ b/infini_train/src/nn/parallel/ddp/distributed_data_parallel.cc @@ -1,15 +1,22 @@ #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel.h" -#include +#include + #include #include +#include +#include #include #include #include "glog/logging.h" #include "infini_train/include/autograd/function_hook.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/modules/module.h" +#include "infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h" +#include "infini_train/include/nn/parallel/ddp/reducer.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/process_group.h" #include "infini_train/include/nn/parallel/rank.h" diff --git a/infini_train/src/nn/parallel/ddp/distributed_optimizer.cc b/infini_train/src/nn/parallel/ddp/distributed_optimizer.cc index a8fa73e64..a43858861 100644 --- a/infini_train/src/nn/parallel/ddp/distributed_optimizer.cc +++ b/infini_train/src/nn/parallel/ddp/distributed_optimizer.cc @@ -1,8 +1,16 @@ #include "infini_train/include/nn/parallel/ddp/distributed_optimizer.h" +#include +#include +#include +#include + #include "glog/logging.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" +#include "infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h" #include "infini_train/include/tensor.h" namespace infini_train::nn::parallel { diff --git a/infini_train/src/nn/parallel/ddp/param_and_grad_buffer.cc b/infini_train/src/nn/parallel/ddp/param_and_grad_buffer.cc index 24dd9cab6..8daf37afa 100644 --- a/infini_train/src/nn/parallel/ddp/param_and_grad_buffer.cc +++ b/infini_train/src/nn/parallel/ddp/param_and_grad_buffer.cc @@ -2,15 +2,19 @@ #include #include +#include #include +#include #include "glog/logging.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" -#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/nn/parallel/work.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/ddp/reducer.cc b/infini_train/src/nn/parallel/ddp/reducer.cc index 83125d139..80b6e0877 100644 --- a/infini_train/src/nn/parallel/ddp/reducer.cc +++ b/infini_train/src/nn/parallel/ddp/reducer.cc @@ -1,15 +1,21 @@ #include "infini_train/include/nn/parallel/ddp/reducer.h" #include -#include #include #include +#include +#include +#include #include "glog/logging.h" #include "infini_train/include/autograd/function_hook.h" #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" +#include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/nn/parallel/work.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/global.cc b/infini_train/src/nn/parallel/global.cc index 655b4bceb..eb6939ac6 100644 --- a/infini_train/src/nn/parallel/global.cc +++ b/infini_train/src/nn/parallel/global.cc @@ -1,8 +1,12 @@ #include "infini_train/include/nn/parallel/global.h" +#include #include #include +#include #include +#include +#include #include "glog/logging.h" diff --git a/infini_train/src/nn/parallel/parallel_functional.cc b/infini_train/src/nn/parallel/parallel_functional.cc index b77cdf70b..6c801d03d 100644 --- a/infini_train/src/nn/parallel/parallel_functional.cc +++ b/infini_train/src/nn/parallel/parallel_functional.cc @@ -1,7 +1,11 @@ #include "infini_train/include/nn/parallel/parallel_functional.h" +#include + #include +#include #include +#include #include #include "glog/logging.h" @@ -13,6 +17,10 @@ #include "infini_train/include/nn/parallel/process_group.h" #include "infini_train/include/tensor.h" +namespace infini_train::nn::parallel::comm { +enum class ReduceOpType : int8_t; +} // namespace infini_train::nn::parallel::comm + namespace infini_train::nn::parallel::function { std::shared_ptr AllGather(const std::shared_ptr &input, const ProcessGroup *pg) { diff --git a/infini_train/src/nn/parallel/pp/pipeline_parallel.cc b/infini_train/src/nn/parallel/pp/pipeline_parallel.cc index c0369cdeb..b813ca8ed 100644 --- a/infini_train/src/nn/parallel/pp/pipeline_parallel.cc +++ b/infini_train/src/nn/parallel/pp/pipeline_parallel.cc @@ -1,15 +1,21 @@ // pipeline_parallel.cc #include "infini_train/include/nn/parallel/pp/pipeline_parallel.h" -#include +#include #include #include +#include +#include "infini_train/include/device.h" #include "infini_train/include/nn/modules/container.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/pp/pipeline_schedule.h" #include "infini_train/include/nn/parallel/pp/pipeline_stage.h" +namespace infini_train { +enum class DataType : int8_t; +} // namespace infini_train + namespace infini_train::nn::parallel { namespace { constexpr char kModuleName[] = "module"; diff --git a/infini_train/src/nn/parallel/pp/pipeline_schedule.cc b/infini_train/src/nn/parallel/pp/pipeline_schedule.cc index 40ba16ddf..5c17e2013 100644 --- a/infini_train/src/nn/parallel/pp/pipeline_schedule.cc +++ b/infini_train/src/nn/parallel/pp/pipeline_schedule.cc @@ -1,8 +1,12 @@ // pipeline_schedule.cc #include "infini_train/include/nn/parallel/pp/pipeline_schedule.h" +#include #include +#include #include +#include +#include #include #include "glog/logging.h" @@ -10,7 +14,6 @@ #include "infini_train/include/autocast.h" #include "infini_train/include/datatype.h" #include "infini_train/include/device.h" -#include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/pp/pipeline_stage.h" diff --git a/infini_train/src/nn/parallel/pp/pipeline_stage.cc b/infini_train/src/nn/parallel/pp/pipeline_stage.cc index 25b5be235..a2602b816 100644 --- a/infini_train/src/nn/parallel/pp/pipeline_stage.cc +++ b/infini_train/src/nn/parallel/pp/pipeline_stage.cc @@ -1,12 +1,13 @@ #include "infini_train/include/nn/parallel/pp/pipeline_stage.h" #include +#include +#include #include "glog/logging.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/parallel/process_group.h" namespace infini_train::nn::parallel { diff --git a/infini_train/src/nn/parallel/pp/send_recv.cc b/infini_train/src/nn/parallel/pp/send_recv.cc index 3e845679d..289e1fe2d 100644 --- a/infini_train/src/nn/parallel/pp/send_recv.cc +++ b/infini_train/src/nn/parallel/pp/send_recv.cc @@ -1,13 +1,14 @@ #include "infini_train/include/nn/parallel/pp/send_recv.h" +#include #include #include -#include "glog/logging.h" - #include "infini_train/include/autograd/function.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/process_group.cc b/infini_train/src/nn/parallel/process_group.cc index 8baaef939..53ecaf3d7 100644 --- a/infini_train/src/nn/parallel/process_group.cc +++ b/infini_train/src/nn/parallel/process_group.cc @@ -1,8 +1,13 @@ #include "infini_train/include/nn/parallel/process_group.h" +#include + #include +#include +#include #include #include +#include #include #include @@ -14,6 +19,7 @@ #include "infini_train/include/core/runtime/runtime_common.h" #include "infini_train/include/device.h" #include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/work.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/tensor_parallel.cc b/infini_train/src/nn/parallel/tensor_parallel.cc index 52cd8281e..b96a0a86e 100644 --- a/infini_train/src/nn/parallel/tensor_parallel.cc +++ b/infini_train/src/nn/parallel/tensor_parallel.cc @@ -1,6 +1,11 @@ #include "infini_train/include/nn/parallel/tensor_parallel.h" +#include +#include #include +#include +#include +#include #include #include "glog/logging.h" @@ -8,12 +13,14 @@ #include "infini_train/include/autograd/function.h" #include "infini_train/include/autograd/linear.h" #include "infini_train/include/autograd/sparse.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" -#include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/init.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/nn/parallel/utils.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/utils.cc b/infini_train/src/nn/parallel/utils.cc index b16d7c4c0..38d4ca7cb 100644 --- a/infini_train/src/nn/parallel/utils.cc +++ b/infini_train/src/nn/parallel/utils.cc @@ -1,15 +1,20 @@ #include "infini_train/include/nn/parallel/utils.h" #include +#include #include "glog/logging.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/functional.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/ddp/distributed_data_parallel.h" +#include "infini_train/include/nn/parallel/ddp/distributed_data_parallel_config.h" +#include "infini_train/include/nn/parallel/ddp/param_and_grad_buffer.h" #include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/nn/parallel/parallel_functional.h" #include "infini_train/include/nn/parallel/process_group.h" +#include "infini_train/include/nn/parallel/rank.h" #include "infini_train/include/nn/parallel/reduce_op_type.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/nn/parallel/work.cc b/infini_train/src/nn/parallel/work.cc index 21b7ee251..12addc227 100644 --- a/infini_train/src/nn/parallel/work.cc +++ b/infini_train/src/nn/parallel/work.cc @@ -1,13 +1,19 @@ #include "infini_train/include/nn/parallel/work.h" +#include +#include +#include #include #include #include +#include #include "glog/logging.h" #include "infini_train/include/core/ccl/ccl.h" +#include "infini_train/include/core/ccl/ccl_common.h" #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/core/runtime/runtime_common.h" #include "infini_train/include/device.h" namespace infini_train::nn::parallel { diff --git a/infini_train/src/optimizer.cc b/infini_train/src/optimizer.cc index 39b999c77..915f8037c 100644 --- a/infini_train/src/optimizer.cc +++ b/infini_train/src/optimizer.cc @@ -1,9 +1,15 @@ #include "infini_train/include/optimizer.h" +#include + +#include #include #include +#include "glog/logging.h" + #include "infini_train/include/core/runtime/device_guard.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" #include "infini_train/include/tensor.h" diff --git a/infini_train/src/profiler.cc b/infini_train/src/profiler.cc index d53cc351a..9d2134e30 100644 --- a/infini_train/src/profiler.cc +++ b/infini_train/src/profiler.cc @@ -1,9 +1,13 @@ #include "infini_train/include/profiler.h" #include +#include +#include #include +#include #include #include +#include #include "glog/logging.h" diff --git a/infini_train/src/tensor.cc b/infini_train/src/tensor.cc index 710be8f6e..183aae648 100644 --- a/infini_train/src/tensor.cc +++ b/infini_train/src/tensor.cc @@ -1,11 +1,17 @@ #include "infini_train/include/tensor.h" -#include +#include + +#include +#include #include #include #include +#include #include #include +#include +#include #include "Eigen/Dense" #include "glog/logging.h" @@ -13,7 +19,6 @@ #include "infini_train/include/autograd/accumulate.h" #include "infini_train/include/autograd/elementwise.h" #include "infini_train/include/autograd/function.h" -#include "infini_train/include/autograd/function_hook.h" #include "infini_train/include/autograd/gather.h" #include "infini_train/include/autograd/matmul.h" #include "infini_train/include/autograd/no_op.h" diff --git a/infini_train/src/utils/checkpoint.cc b/infini_train/src/utils/checkpoint.cc index dd67bbdb2..8426795f2 100644 --- a/infini_train/src/utils/checkpoint.cc +++ b/infini_train/src/utils/checkpoint.cc @@ -1,15 +1,22 @@ #include "infini_train/include/utils/checkpoint.h" +#include +#include + #include #include #include +#include #include +#include #include "glog/logging.h" #include "infini_train/include/autocast.h" #include "infini_train/include/autograd/function.h" #include "infini_train/include/autograd/grad_mode.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" namespace infini_train::utils::checkpoint { diff --git a/infini_train/src/utils/global_module_hook_registry.cc b/infini_train/src/utils/global_module_hook_registry.cc index 377c62563..ad744aee2 100644 --- a/infini_train/src/utils/global_module_hook_registry.cc +++ b/infini_train/src/utils/global_module_hook_registry.cc @@ -1,5 +1,7 @@ #include "infini_train/include/utils/global_module_hook_registry.h" +#include + namespace infini_train::utils { GlobalModuleHookRegistry &GlobalModuleHookRegistry::Instance() { diff --git a/infini_train/src/utils/precision_check_config.cc b/infini_train/src/utils/precision_check_config.cc index 7e1b7176c..5d2806887 100644 --- a/infini_train/src/utils/precision_check_config.cc +++ b/infini_train/src/utils/precision_check_config.cc @@ -1,6 +1,7 @@ #include "infini_train/include/utils/precision_check_config.h" #include +#include #include #include #include diff --git a/infini_train/src/utils/precision_checker.cc b/infini_train/src/utils/precision_checker.cc index 2965284eb..0e3c9515a 100644 --- a/infini_train/src/utils/precision_checker.cc +++ b/infini_train/src/utils/precision_checker.cc @@ -1,5 +1,6 @@ #include "infini_train/include/utils/precision_checker.h" +#include #include #include #include @@ -11,11 +12,15 @@ #include #include #include +#include +#include +#include #include "infini_train/include/autograd/function.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/parallel/global.h" -#include "infini_train/include/nn/parallel/tensor_parallel.h" #include "infini_train/include/tensor.h" #include "infini_train/include/utils/global_module_hook_registry.h" #include "infini_train/include/utils/precision_check_config.h" diff --git a/infini_train/src/utils/string_utils.cc b/infini_train/src/utils/string_utils.cc index e3d9c4ce7..2958851e9 100644 --- a/infini_train/src/utils/string_utils.cc +++ b/infini_train/src/utils/string_utils.cc @@ -1,5 +1,7 @@ #include "infini_train/include/utils/string_utils.h" +#include + #include namespace infini_train::utils { diff --git a/tests/autograd/test_activation_checkpoint.cc b/tests/autograd/test_activation_checkpoint.cc index abb52a7ca..8b42802ad 100644 --- a/tests/autograd/test_activation_checkpoint.cc +++ b/tests/autograd/test_activation_checkpoint.cc @@ -1,11 +1,17 @@ +#include +#include + +#include #include #include +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/function.h" #include "infini_train/include/autograd/grad_mode.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "infini_train/include/utils/checkpoint.h" diff --git a/tests/autograd/test_autograd.cc b/tests/autograd/test_autograd.cc index b03b392e9..5f5a1f97d 100644 --- a/tests/autograd/test_autograd.cc +++ b/tests/autograd/test_autograd.cc @@ -1,4 +1,7 @@ -#include +#include + +#include +#include #include #include "gtest/gtest.h" @@ -15,6 +18,8 @@ #include "infini_train/include/autograd/reduction.h" #include "infini_train/include/autograd/softmax.h" #include "infini_train/include/autograd/transform.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_elementwise_backward.cc b/tests/autograd/test_autograd_elementwise_backward.cc index 1153470b1..0fb05248c 100644 --- a/tests/autograd/test_autograd_elementwise_backward.cc +++ b/tests/autograd/test_autograd_elementwise_backward.cc @@ -1,4 +1,9 @@ +#include +#include + #include +#include +#include #include #include "gtest/gtest.h" @@ -6,7 +11,8 @@ #include "infini_train/include/autograd/activations.h" #include "infini_train/include/autograd/elementwise.h" #include "infini_train/include/core/runtime/device_guard.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_elementwise_forward.cc b/tests/autograd/test_autograd_elementwise_forward.cc index dea43f69d..d7de27205 100644 --- a/tests/autograd/test_autograd_elementwise_forward.cc +++ b/tests/autograd/test_autograd_elementwise_forward.cc @@ -1,11 +1,13 @@ -#include +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/activations.h" #include "infini_train/include/autograd/elementwise.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_linear_backward.cc b/tests/autograd/test_autograd_linear_backward.cc index 9ce88eee7..3b1ad7f99 100644 --- a/tests/autograd/test_autograd_linear_backward.cc +++ b/tests/autograd/test_autograd_linear_backward.cc @@ -1,10 +1,14 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/linear.h" #include "infini_train/include/core/runtime/device_guard.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_linear_forward.cc b/tests/autograd/test_autograd_linear_forward.cc index 64e4e0f13..de4a8cdaf 100644 --- a/tests/autograd/test_autograd_linear_forward.cc +++ b/tests/autograd/test_autograd_linear_forward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/linear.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_loss.cc b/tests/autograd/test_autograd_loss.cc index a66c9e993..b1d1a7b7b 100644 --- a/tests/autograd/test_autograd_loss.cc +++ b/tests/autograd/test_autograd_loss.cc @@ -1,10 +1,13 @@ +#include + #include +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/loss.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_matmul_backward.cc b/tests/autograd/test_autograd_matmul_backward.cc index 114d9e212..92868f6c9 100644 --- a/tests/autograd/test_autograd_matmul_backward.cc +++ b/tests/autograd/test_autograd_matmul_backward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/matmul.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_matmul_forward.cc b/tests/autograd/test_autograd_matmul_forward.cc index 0cd78489f..2702f5aaf 100644 --- a/tests/autograd/test_autograd_matmul_forward.cc +++ b/tests/autograd/test_autograd_matmul_forward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/matmul.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_normalization_backward.cc b/tests/autograd/test_autograd_normalization_backward.cc index 12241c2b6..7f0e6177e 100644 --- a/tests/autograd/test_autograd_normalization_backward.cc +++ b/tests/autograd/test_autograd_normalization_backward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/normalization.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_normalization_forward.cc b/tests/autograd/test_autograd_normalization_forward.cc index ebb876d8d..ed5e8d31a 100644 --- a/tests/autograd/test_autograd_normalization_forward.cc +++ b/tests/autograd/test_autograd_normalization_forward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/normalization.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_reduction_backward.cc b/tests/autograd/test_autograd_reduction_backward.cc index cea6d6927..9e38b5d3f 100644 --- a/tests/autograd/test_autograd_reduction_backward.cc +++ b/tests/autograd/test_autograd_reduction_backward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/reduction.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_reduction_forward.cc b/tests/autograd/test_autograd_reduction_forward.cc index 0232899a8..4a03ccb8e 100644 --- a/tests/autograd/test_autograd_reduction_forward.cc +++ b/tests/autograd/test_autograd_reduction_forward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/reduction.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_softmax_backward.cc b/tests/autograd/test_autograd_softmax_backward.cc index 012fa5d8c..360233944 100644 --- a/tests/autograd/test_autograd_softmax_backward.cc +++ b/tests/autograd/test_autograd_softmax_backward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/softmax.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_softmax_forward.cc b/tests/autograd/test_autograd_softmax_forward.cc index ac65a462e..37ec5d4f0 100644 --- a/tests/autograd/test_autograd_softmax_forward.cc +++ b/tests/autograd/test_autograd_softmax_forward.cc @@ -1,9 +1,12 @@ +#include + +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/softmax.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_transform_backward.cc b/tests/autograd/test_autograd_transform_backward.cc index 592a7060a..a1299da2a 100644 --- a/tests/autograd/test_autograd_transform_backward.cc +++ b/tests/autograd/test_autograd_transform_backward.cc @@ -1,10 +1,14 @@ +#include +#include + +#include #include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/transform.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/autograd/test_autograd_transform_forward.cc b/tests/autograd/test_autograd_transform_forward.cc index be86972c0..fd04d4f9b 100644 --- a/tests/autograd/test_autograd_transform_forward.cc +++ b/tests/autograd/test_autograd_transform_forward.cc @@ -1,10 +1,13 @@ +#include + +#include #include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/transform.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/backend/test_privateuse1_backend.cc b/tests/backend/test_privateuse1_backend.cc index f44dc9d87..120a3e593 100644 --- a/tests/backend/test_privateuse1_backend.cc +++ b/tests/backend/test_privateuse1_backend.cc @@ -1,15 +1,23 @@ +#include + #include #include #include +#include +#include #include +#include "glog/logging.h" #include "gtest/gtest.h" #include "infini_train/include/autocast.h" #include "infini_train/include/core/privateuse1_backend.h" #include "infini_train/include/core/runtime/device_guard.h" #include "infini_train/include/core/runtime/runtime_common.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/dispatcher.h" +#include "infini_train/include/scalar.h" #include "infini_train/include/tensor.h" namespace infini_train::test { diff --git a/tests/backend/test_privateuse1_backend_validation.cc b/tests/backend/test_privateuse1_backend_validation.cc index c68454139..00b521fb2 100644 --- a/tests/backend/test_privateuse1_backend_validation.cc +++ b/tests/backend/test_privateuse1_backend_validation.cc @@ -1,6 +1,10 @@ +#include +#include + #include "gtest/gtest.h" #include "infini_train/include/core/privateuse1_backend.h" +#include "infini_train/include/datatype.h" namespace infini_train::test { namespace { diff --git a/tests/checkpoint/test_checkpoint_serialization.cc b/tests/checkpoint/test_checkpoint_serialization.cc index 8a9b11cf4..887129a26 100644 --- a/tests/checkpoint/test_checkpoint_serialization.cc +++ b/tests/checkpoint/test_checkpoint_serialization.cc @@ -1,11 +1,14 @@ +#include + #include +#include #include #include "gtest/gtest.h" #include "infini_train/include/checkpoint/checkpoint.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/modules/linear.h" -#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/checkpoint/test_lr_scheduler_state.cc b/tests/checkpoint/test_lr_scheduler_state.cc index a0e07dd93..674191711 100644 --- a/tests/checkpoint/test_lr_scheduler_state.cc +++ b/tests/checkpoint/test_lr_scheduler_state.cc @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -5,6 +7,8 @@ #include "gtest/gtest.h" #include "infini_train/include/checkpoint/checkpoint.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/lr_scheduler.h" #include "infini_train/include/nn/modules/linear.h" #include "infini_train/include/optimizer.h" diff --git a/tests/checkpoint/test_optimizer_state.cc b/tests/checkpoint/test_optimizer_state.cc index 1cbb8b9f3..da02da40f 100644 --- a/tests/checkpoint/test_optimizer_state.cc +++ b/tests/checkpoint/test_optimizer_state.cc @@ -1,7 +1,15 @@ +#include +#include + +#include +#include +#include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/checkpoint/test_trainer_state.cc b/tests/checkpoint/test_trainer_state.cc index ec4d61e8b..9610bb23c 100644 --- a/tests/checkpoint/test_trainer_state.cc +++ b/tests/checkpoint/test_trainer_state.cc @@ -1,13 +1,18 @@ +#include + #include #include +#include +#include #include +#include #include "gtest/gtest.h" #include "infini_train/include/checkpoint/checkpoint.h" #include "infini_train/include/checkpoint/checkpoint_manager.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/modules/linear.h" -#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/dataloader/test_dataloader.cc b/tests/dataloader/test_dataloader.cc index f6b77f53e..6c1221c3a 100644 --- a/tests/dataloader/test_dataloader.cc +++ b/tests/dataloader/test_dataloader.cc @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -8,6 +10,7 @@ #include "infini_train/include/dataloader.h" #include "infini_train/include/dataset.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" using namespace infini_train; diff --git a/tests/distributed/test_rank.cc b/tests/distributed/test_rank.cc index e0b376149..926a4247c 100644 --- a/tests/distributed/test_rank.cc +++ b/tests/distributed/test_rank.cc @@ -1,3 +1,5 @@ +#include + #include "gtest/gtest.h" #include "infini_train/include/nn/parallel/global.h" diff --git a/tests/dtype/test_dtype_dispatch.cc b/tests/dtype/test_dtype_dispatch.cc index b63d96a68..eaf0b40e8 100644 --- a/tests/dtype/test_dtype_dispatch.cc +++ b/tests/dtype/test_dtype_dispatch.cc @@ -1,3 +1,4 @@ +#include #include #include "gtest/gtest.h" @@ -6,6 +7,7 @@ #include "infini_train/include/dtype_dispatch.h" #include "infini_train/src/core/runtime/cpu/cpu_dispatch.h" + #include "tests/common/test_utils.h" using namespace infini_train; @@ -15,6 +17,7 @@ using namespace infini_train; // ============================================================================ template struct LowPrecisionAbsentTypeMap; + template <> struct LowPrecisionAbsentTypeMap { using type = float; }; diff --git a/tests/dtype/test_scalar.cc b/tests/dtype/test_scalar.cc index 8dd1e4afb..e5fdad591 100644 --- a/tests/dtype/test_scalar.cc +++ b/tests/dtype/test_scalar.cc @@ -1,9 +1,10 @@ -#include #include #include +#include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/scalar.h" #include "tests/common/test_utils.h" diff --git a/tests/hook/test_hook.cc b/tests/hook/test_hook.cc index 3e4ed6922..b23a01c4a 100644 --- a/tests/hook/test_hook.cc +++ b/tests/hook/test_hook.cc @@ -1,17 +1,22 @@ +#include + #include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/elementwise.h" -#include "infini_train/include/autograd/function.h" -#include "infini_train/include/autograd/function_hook.h" #include "infini_train/include/common/hook.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" +namespace infini_train::autograd { +class Function; +} // namespace infini_train::autograd + using namespace infini_train; class HookTest : public infini_train::test::InfiniTrainTest {}; diff --git a/tests/hook/test_precision_check.cc b/tests/hook/test_precision_check.cc index f1c018441..d24c3a62f 100644 --- a/tests/hook/test_precision_check.cc +++ b/tests/hook/test_precision_check.cc @@ -1,13 +1,13 @@ -#include +#include + #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/nn/modules/module.h" #include "infini_train/include/tensor.h" -#include "infini_train/include/utils/precision_check_config.h" -#include "infini_train/include/utils/precision_checker.h" #include "tests/common/test_utils.h" diff --git a/tests/lora/test_lora.cc b/tests/lora/test_lora.cc index 26cffdcaa..6e22b0e12 100644 --- a/tests/lora/test_lora.cc +++ b/tests/lora/test_lora.cc @@ -1,17 +1,22 @@ +#include + #include #include +#include #include +#include #include +#include "Eigen/Dense" #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/nn/lora/lora_config.h" #include "infini_train/include/nn/lora/lora_linear.h" #include "infini_train/include/nn/lora/lora_utils.h" -#include "infini_train/include/nn/modules/container.h" #include "infini_train/include/nn/modules/linear.h" #include "infini_train/include/nn/modules/module.h" -#include "infini_train/include/nn/parallel/global.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/module/test_named_parameters.cc b/tests/module/test_named_parameters.cc index c1a4a6216..e93fbc0c3 100644 --- a/tests/module/test_named_parameters.cc +++ b/tests/module/test_named_parameters.cc @@ -2,16 +2,23 @@ #include #include #include +#include #include #include "gtest/gtest.h" #include "infini_train/include/nn/modules/container.h" #include "infini_train/include/nn/modules/linear.h" -#include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" +namespace infini_train { +class Tensor; +} // namespace infini_train +namespace infini_train::nn { +class Module; +} // namespace infini_train::nn + using namespace infini_train; class ModuleNamedParametersTest : public test::InfiniTrainTest {}; diff --git a/tests/optimizer/test_lr_scheduler.cc b/tests/optimizer/test_lr_scheduler.cc index f69504123..4b91667cc 100644 --- a/tests/optimizer/test_lr_scheduler.cc +++ b/tests/optimizer/test_lr_scheduler.cc @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -9,10 +10,13 @@ #include "infini_train/include/lr_scheduler.h" #include "infini_train/include/optimizer.h" -#include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" +namespace infini_train { +class Tensor; +} // namespace infini_train + using namespace infini_train; using namespace infini_train::lr_schedulers; diff --git a/tests/optimizer/test_optimizer_creation.cc b/tests/optimizer/test_optimizer_creation.cc index eac6d0b83..bd795ade2 100644 --- a/tests/optimizer/test_optimizer_creation.cc +++ b/tests/optimizer/test_optimizer_creation.cc @@ -1,7 +1,11 @@ +#include + +#include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/optimizer/test_optimizer_parameter_names.cc b/tests/optimizer/test_optimizer_parameter_names.cc index 3b50b5858..d6f3d58ee 100644 --- a/tests/optimizer/test_optimizer_parameter_names.cc +++ b/tests/optimizer/test_optimizer_parameter_names.cc @@ -1,8 +1,14 @@ +#include + +#include #include +#include +#include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/optimizer/test_optimizer_step.cc b/tests/optimizer/test_optimizer_step.cc index 66ef1be73..a5abf7514 100644 --- a/tests/optimizer/test_optimizer_step.cc +++ b/tests/optimizer/test_optimizer_step.cc @@ -1,8 +1,11 @@ +#include + +#include #include #include "gtest/gtest.h" -#include "infini_train/include/nn/parallel/global.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/optimizer.h" #include "infini_train/include/tensor.h" diff --git a/tests/tensor/cpu_only/test_tensor_copy.cc b/tests/tensor/cpu_only/test_tensor_copy.cc index 5d141074c..cbdabaed0 100644 --- a/tests/tensor/cpu_only/test_tensor_copy.cc +++ b/tests/tensor/cpu_only/test_tensor_copy.cc @@ -1,8 +1,12 @@ +#include + #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/tensor/test_tensor.cc b/tests/tensor/test_tensor.cc index 4f614cd47..771fa862f 100644 --- a/tests/tensor/test_tensor.cc +++ b/tests/tensor/test_tensor.cc @@ -1,8 +1,11 @@ +#include + #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/tensor/test_tensor_accelerator_copy.cc b/tests/tensor/test_tensor_accelerator_copy.cc index 3732db34a..2a56b9369 100644 --- a/tests/tensor/test_tensor_accelerator_copy.cc +++ b/tests/tensor/test_tensor_accelerator_copy.cc @@ -1,8 +1,12 @@ +#include + #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/device.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/tensor/test_tensor_copy.cc b/tests/tensor/test_tensor_copy.cc index 84dcbc434..214d0518b 100644 --- a/tests/tensor/test_tensor_copy.cc +++ b/tests/tensor/test_tensor_copy.cc @@ -1,8 +1,12 @@ +#include + +#include #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/tensor/test_tensor_create.cc b/tests/tensor/test_tensor_create.cc index 424d4eb30..77d40fc5c 100644 --- a/tests/tensor/test_tensor_create.cc +++ b/tests/tensor/test_tensor_create.cc @@ -1,8 +1,12 @@ +#include + +#include #include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/tensor/test_tensor_delete.cc b/tests/tensor/test_tensor_delete.cc index 511ef08e0..4919b7f95 100644 --- a/tests/tensor/test_tensor_delete.cc +++ b/tests/tensor/test_tensor_delete.cc @@ -1,8 +1,12 @@ +#include + #include +#include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" #include "infini_train/include/tensor.h" #include "tests/common/test_utils.h" diff --git a/tests/transformer/test_qwen3_architecture.cc b/tests/transformer/test_qwen3_architecture.cc index 1dc3015a8..0a8921c48 100644 --- a/tests/transformer/test_qwen3_architecture.cc +++ b/tests/transformer/test_qwen3_architecture.cc @@ -1,11 +1,18 @@ +#include + #include #include +#include #include #include "gtest/gtest.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/modules/module.h" +#include "infini_train/include/nn/modules/normalization.h" #include "infini_train/include/nn/modules/transformer/causal_self_attention.h" #include "infini_train/include/nn/modules/transformer/transformer.h" +#include "infini_train/include/nn/modules/transformer/transformer_config.h" #include "infini_train/include/nn/modules/transformer/utils.h" #include "infini_train/include/tensor.h" diff --git a/tests/transformer/test_transformer_architecture.cc b/tests/transformer/test_transformer_architecture.cc index 373c4a97e..0bc5c344d 100644 --- a/tests/transformer/test_transformer_architecture.cc +++ b/tests/transformer/test_transformer_architecture.cc @@ -1,10 +1,16 @@ -#include +#include + #include +#include +#include +#include #include #include "gtest/gtest.h" #include "infini_train/include/autograd/topk.h" +#include "infini_train/include/datatype.h" +#include "infini_train/include/nn/modules/module.h" #include "infini_train/include/nn/modules/normalization.h" #include "infini_train/include/nn/modules/sparse.h" #include "infini_train/include/nn/modules/transformer/causal_self_attention.h" diff --git a/tools/infini_run/infini_run.cc b/tools/infini_run/infini_run.cc index c2d6c8fa5..5a4e30214 100644 --- a/tools/infini_run/infini_run.cc +++ b/tools/infini_run/infini_run.cc @@ -1,13 +1,16 @@ +#include +#include + +#include #include #include #include #include #include #include +#include #include -#include #include -#include #include #include From 9f184a35527f8579e587cda4da855a1ce9018bc6 Mon Sep 17 00:00:00 2001 From: kilinchange Date: Fri, 16 Oct 2026 07:32:58 +0000 Subject: [PATCH 3/4] ci(iwyu): suppress redundant success messages --- docs/code_quality.md | 8 +++++--- scripts/iwyu.py | 32 +++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/docs/code_quality.md b/docs/code_quality.md index 173675e9e..aec325f5e 100644 --- a/docs/code_quality.md +++ b/docs/code_quality.md @@ -127,9 +127,11 @@ mapping 用于告诉 IWYU 应使用对应的公共头文件,而不是直接建 ## 检查结果 -IWYU 会输出建议增加或删除的 include、前置声明,以及建议保留的完整 include 列表。 -脚本会将 IWYU 的完整结果直接输出到控制台,便于在 CI 日志中逐项查看具体建议。为避免命令本身 -占用大量日志,启动信息只显示 translation unit 数量,不展开全部源码路径。 +IWYU 会输出建议增加或删除的 include、前置声明,以及建议保留的完整 include 列表。普通检查模式会将这些建议、 +编译 warning 和 error 直接输出到控制台,便于在 CI 日志中逐项查看。成功文件产生的 +`has correct #includes/fwd-decls` 提示不包含可操作信息,因此会被过滤。为避免命令本身占用大量日志, +启动信息只显示 translation unit 数量,不展开全部源码路径。 +自动修复模式需要把原始结果完整传给官方修复器,因此不执行这项输出过滤。 `scripts/iwyu.py` 向 IWYU 传入: diff --git a/scripts/iwyu.py b/scripts/iwyu.py index 17c96746b..f665b5759 100644 --- a/scripts/iwyu.py +++ b/scripts/iwyu.py @@ -24,6 +24,9 @@ Path("scripts/iwyu.py"), } INCLUDE_RE = re.compile(r'^\s*#\s*include\s*[<"]([^>"]+)[>"]', re.MULTILINE) +CORRECT_RESULT_RE = re.compile( + r"^\(.+ has correct #includes/fwd-decls\)$" +) def capture(command: list[str]) -> str: @@ -35,6 +38,33 @@ def capture(command: list[str]) -> str: return process.stdout +def run_check(command: list[str]) -> int: + """Run IWYU while suppressing non-actionable success messages.""" + process = subprocess.Popen( + command, + cwd=ROOT, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1, + ) + assert process.stdout is not None + pending_blank = False + emitted_output = False + for line in process.stdout: + if CORRECT_RESULT_RE.fullmatch(line.strip()): + continue + if not line.strip(): + pending_blank = True + continue + if pending_blank and emitted_output: + print() + print(line, end="", flush=True) + pending_blank = False + emitted_output = True + return process.wait() + + def merge_base(ref: str) -> str: return capture(["git", "merge-base", ref, "HEAD"]).strip() @@ -246,7 +276,7 @@ def main() -> int: ] print("+", " ".join(display_command), flush=True) if not (args.fix or args.fix_dry_run): - return subprocess.run(command, cwd=ROOT, check=False).returncode + return run_check(command) analysis = subprocess.run( command, From 82439d061ae47e4f77241bdeb4e8daebb59867ce Mon Sep 17 00:00:00 2001 From: kilinchange Date: Fri, 16 Oct 2026 09:21:58 +0000 Subject: [PATCH 4/4] doc: rename iwyu doc --- docs/{code_quality.md => code_quality/iwyu.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{code_quality.md => code_quality/iwyu.md} (100%) diff --git a/docs/code_quality.md b/docs/code_quality/iwyu.md similarity index 100% rename from docs/code_quality.md rename to docs/code_quality/iwyu.md