FlagTensor 用户指南#
使用 FlagTensor#
FlagTensor 直接与 PyTorch 集成。导入包并对 CUDA 张量调用算子:
import torch
import flagtensor
# 逐元素(一元)操作
x = torch.randn(1024, device="cuda", dtype=torch.float32)
y = flagtensor.abs(x)
z = flagtensor.relu(x)
w = flagtensor.sigmoid(x)
# 二元操作
a = torch.randn(1024, device="cuda")
b = torch.randn(1024, device="cuda")
c = flagtensor.add(a, b)
d = flagtensor.mul(a, b)
# 张量收缩
m = torch.randn(64, 32, device="cuda")
n = torch.randn(32, 48, device="cuda")
r = flagtensor.contraction(m, n)
# 三元收缩
p = torch.randn(64, 32, device="cuda")
q = torch.randn(32, 48, device="cuda")
s = torch.randn(64, 48, device="cuda")
t = flagtensor.contraction_trinary(p, q, s)
# 逐元素三元操作
u = flagtensor.elementwise_trinary(a, b, c)
算子列表#
完整的算子注册表维护在 FlagTensor conf/operators.yaml。
类别 |
算子 |
状态 |
|---|---|---|
一元 |
abs、acos、acosh、asin、asinh、atan、atanh、ceil、conj、cos、cosh、exp、floor、identity、log、mish、neg、rcp、relu、sigmoid、sin、sinh、soft_plus、soft_sign、sqrt、swish、tan、tanh |
stable |
二元 |
add、max、min、mul |
stable |
收缩 |
contraction、elementwise_trinary |
stable |
收缩 |
contraction_trinary |
active |
稀疏 |
block_sparse_contraction |
experimental |
运行测试#
正确性测试#
# 分类级正确性(主要验收接口)
pytest tests/unary/test_unary_correctness.py -v
pytest tests/binary/test_binary_correctness.py -v
pytest tests/contraction/test_contraction_correctness.py -v
pytest tests/sparse/test_sparse_correctness.py -v
# 单个算子正确性测试(每个算子文件)
pytest tests/unary/test_CUTENSOR_OP_ABS.py -v
# 记录测试结果为 JSON(使用 CPU-FP64 参考)
pytest tests/unary/test_CUTENSOR_OP_ABS.py --ref cpu --record json --output results.json
# 多 GPU 测试运行器(从 YAML 注册表)
python tools/run_tests.py --stages stable --gpus 0,1
# 提取算子标记
python tools/get_marks.py --stage stable --output ops.txt
性能测试#
# 分类级基准测试(主要验收接口)
pytest benchmark/test_unary_perf.py -m CUTENSOR_OP_ABS --mode kernel --level core --record log
pytest benchmark/test_binary_perf.py -m CUTENSOR_OP_ADD --mode kernel --level core --record log
pytest benchmark/test_contraction_perf.py -m Contraction --mode kernel --level core --record log
pytest benchmark/test_sparse_perf.py -m BlockSparseContraction --mode kernel --level core --record log
# 每个算子基准测试(旧版/调试)
pytest benchmark/test_CUTENSOR_OP_ABS_perf.py --mode kernel --level core --record log
# 解析基准测试摘要
python tools/summary_for_plot.py result-*.log
CI 运行器#
# 冒烟正确性
python tools/run_flagtensor_ci.py --smoke --run-correctness --results-dir ci_results_correctness --dump-json-summary
# 冒烟性能
python tools/run_flagtensor_ci.py --smoke --run-perf --results-dir ci_results_perf --dump-json-summary
# 验收正确性(完整覆盖率)
python tools/run_flagtensor_ci.py --run-correctness --results-dir acceptance_results_correctness --dump-json-summary
# 验收性能(完整覆盖率)
python tools/run_flagtensor_ci.py --run-perf --results-dir acceptance_results_perf --dump-json-summary
# 每周回归
python tools/run_flagtensor_weekly.py --project-root . --results-dir weekly_results --gpus 0 --mode kernel