CANN-LLM:基于昇腾 CANN 的高性能、全功能 LLM 推理引擎 📅 发布时间:2026/7/8 22:28:41 👁️ 浏览次数: 在上一篇中我们实现了毫秒级请求取消机制使系统具备了生产级的鲁棒性。现在我们将整合前六篇的所有技术成果构建一个完整的、可开源的 LLM 推理服务项目模板命名为CANN-LLM基于昇腾 CANN 的高性能、全功能 LLM 推理引擎本文将提供完整的项目目录结构CMake 构建系统配置Docker 部署方案性能调优 checklist以及如何贡献到 GitCode 开源社区目标让开发者 10 分钟内跑通 INT4 Continuous Batching QoS StreamingLLM 的 Llama-2-7B 服务cann组织链接https://atomgit.com/cannops-nn仓库链接https://atomgit.com/cann/ops-nn一、项目整体架构cann-llm/ ├── cmake/# CMake 模块│ ├── FindCANN.cmake# 自动查找 CANN 安装│ └── cann-llm-config.cmake ├── src/ │ ├── core/# 核心推理逻辑│ │ ├── engine.cpp# 主推理引擎│ │ ├── scheduler.cpp# QoS Continuous Batching│ │ ├── kv_manager.cpp# PagedAttention StreamingLLM│ │ └── cancellation.cpp# 请求取消│ ├── model/# 模型加载与量化│ │ ├── int4_loader.cpp │ │ └── quantize_tool.py │ ├── ops/# tbe 算子注册│ │ ├── int4_gemm.cpp │ │ ├── fused_attention.cpp │ │ └── sparse_attention.cpp │ ├── server/# HTTP/WebSocket 服务│ │ ├── http_server.cpp │ │ └── ws_streamer.cpp │ └── main.cpp# 入口├── tbe_kernels/# Python tbe 算子源码│ ├── int4_gemm.py │ ├── paged_attention.py │ └── streaming_sparse_attn.py ├── tools/ │ ├── quantize_llama.py# 离线量化脚本│ └── profile_cann.py# 性能分析工具├── configs/ │ └── llama2_7b_int4.yaml# 模型配置├── docker/ │ └── Dockerfile# 一键部署├── tests/ │ └── e2e_test.py# 端到端测试├── README.md └── CMakeLists.txt二、CMake 构建系统关键片段CMakeLists.txtcmake_minimum_required(VERSION 3.18) project(cann-llm LANGUAGES CXX) # 查找 CANN find_package(CANN REQUIRED) # 编译 tbe 算子自动调用 te_build add_custom_target(tbe_ops ALL COMMAND python ${CMAKE_SOURCE_DIR}/tbe_kernels/build_all.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tbe_kernels DEPENDS ${CMAKE_SOURCE_DIR}/tbe_kernels/*.py ) # 主程序 add_executable(llm_server src/main.cpp src/core/engine.cpp src/core/scheduler.cpp src/model/int4_loader.cpp src/server/http_server.cpp # ... 其他源文件 ) # 链接 CANN 库 target_link_libraries(llm_server PRIVATE ${CANN_LIBRARIES} pthread dl ) # 依赖 tbe 算子 add_dependencies(llm_server tbe_ops) # 安装规则 install(TARGETS llm_server DESTINATION bin) install(DIRECTORY configs/ DESTINATION etc/cann-llm)cmake/FindCANN.cmakefind_path(CANN_INCLUDE_DIR ge/ge_api.h PATHS /usr/local/Ascend/ascend-toolkit/latest/include $ENV{ASCEND_HOME}/include ) find_library(CANN_GE_LIB ge PATHS /usr/local/Ascend/ascend-toolkit/latest/lib64 ) set(CANN_LIBRARIES ${CANN_GE_LIB} ${CANN_RUNTIME_LIB} ...) set(CANN_FOUND TRUE)三、Docker 一键部署docker/DockerfileFROM ascend-cann-toolkit:8.0.RC1 WORKDIR /app COPY . . # 安装 Python 依赖用于量化 tbe RUN pip install torch transformers sentencepiece # 构建 C 引擎 RUN mkdir build cd build \ cmake .. -DCMAKE_BUILD_TYPERelease \ make -j$(nproc) \ make install # 量化模型示例 RUN python tools/quantize_llama.py \ --model meta-llama/Llama-2-7b-hf \ --output ./models/llama2-7b-int4 EXPOSE 8080 CMD [llm_server, --model, /app/models/llama2-7b-int4, --port, 8080]构建与运行dockerbuild -t cann-llm -f docker/Dockerfile.dockerrun -d --device/dev/davinci0 --name llm-server cann-llm四、启动与测试启动服务./build/llm_server\--model ./models/llama2-7b-int4\--max-batch-size8\--window-size2048\--sink-size4\--port8080调用 API# 1. 提交请求REQ_ID$(curl-s -X POST http://localhost:8080/generate\-HX-Priority: high\-d{prompt: Explain quantum computing in simple terms.}|jq -r .id)# 2. 流式获取结果curl-N http://localhost:8080/stream/$REQ_ID# 3. 取消请求如需要curl-X DELETE http://localhost:8080/requests/$REQ_ID五、性能调优 Checklist组件调优项建议值tbe 算子BLOCK_M / BLOCK_N根据 NPU UB 大小调整通常 64~128PagedAttentionblock_size16 或 32平衡碎片与管理开销Continuous Batchingmax_batch_size8~16避免长尾延迟INT4 GEMMgroup_size128AWQ 默认StreamingLLMsink_size4论文推荐QoSHigh 权重≥5保障实时性 使用tools/profile_cann.py分析 kernel 占比定位瓶颈六、开源贡献指南GitCodeFork 仓库https://gitcode.com/cann-community/cann-llm提交 PR 要求新算子需包含tbe_kernels/xxx.pyops/xxx.cpp性能提升需附 benchmark 数据支持新模型需提供量化脚本CI/CD 流程自动编译检查单元测试Google Test精度回归测试vs HF FP16七、结语从技术原型到工业基石通过CANN-LLM项目我们将前六篇的先进技术——✅ FusedAttention✅ INT4 GEMM✅ Continuous Batching✅ PagedAttention✅ StreamingLLM✅ QoS 调度✅ 请求取消——整合为一个开箱即用、生产就绪的推理引擎。这不仅是一个项目更是国产 AI 软件栈走向成熟、走向生态的关键一步。我们邀请每一位开发者使用它快速部署自己的 LLM 服务改进它贡献算子、调度策略、新模型支持扩展它构建多模态、Agent、RAG 等上层应用CANN-LLM 将于 2026 年 Q2 在 GitCode 正式开源关注 https://gitcode.com/cann-community 获取最新动态
基于Matlab的热成像图像处理系统 - 标题:基于matlab的热成像图像处理系统 - 关键词:matlab GUI界面 数字图像处理 椒盐噪声 高斯噪声 乘性噪声 均值滤波 中值滤波 高通滤波 灰度化 温度异常检测 设置温度阈值 - 步骤:打开图像 选择模糊算法 选择还原算法 对模糊的图像进行还原… 2026/5/17 3:12:09
MoeKoeMusic v1.5.9:高颜值酷狗第三方客户端 MoeKoeMusic v1.5.9 绿色版是一款优质的酷狗音乐第三方客户端,依托 Vue.js 全家桶开发且直连酷狗官方服务器,既支持多方式账号登录,又拥有丰富的音乐功能与个性化设置,还能实现 VIP 自动领取,为广大用户打造出纯粹的高… 2026/7/6 22:47:30
手势识别VOC+YOLO格式1745张10类别 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1745标注数量(xml文件个数):1745标注数量(txt文件个数):1745标注类别… 2026/5/17 3:12:07
PInVerify:具身AI实例级指代验证离线基准 1. 项目概述:这不是又一个“刷榜”数据集,而是一把量尺如果你最近在具身AI(Embodied AI)领域泡得久,大概率已经听过“物理AI”和“具身智能”这两个词被反复提起,甚至有人开始混淆——前者强调系统与真实物… 2026/7/8 22:28:15
AI内衣换装系统本地私有化部署:技术架构与商业应用实战 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 稳定商业AI内衣换装全流程软件:本地私有化部署实战指南 在电商和服装设计领域,AI换装技术正从概念验证走向商业… 2026/7/8 22:28:15
LTX-Video V1.6:基于int8量化的AI视频生成工具部署与优化指南 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在本地部署AI视频生成工具时,很多开发者都面临显存不足、环境配置复杂、生成速度慢三大痛点。特别是想要实现文字或图片生… 2026/7/8 22:26:13
AI音乐伴舞技术解析:从节奏识别到动作匹配的完整实现 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近刷短视频时,你有没有发现一种新趋势——很多视频的背景音乐不再是简单的配乐,而是出现了与画面动作高度同… 2026/7/8 22:24:11
PyTorch nn.Conv2d groups 参数实战:从标准卷积到深度可分离卷积的3种模式对比 PyTorch nn.Conv2d groups 参数实战:从标准卷积到深度可分离卷积的3种模式对比在深度学习模型设计中,卷积神经网络(CNN)的核心组件nn.Conv2d有一个常被忽视但极其重要的参数——groups。这个参数看似简单,却能彻底改变卷积层的连接方式和计算… 2026/7/8 22:22:10
UNet3+ 全尺度跳跃连接解析:从公式到 PyTorch 代码的 3 步实现 UNet3 全尺度跳跃连接解析:从公式到 PyTorch 代码的 3 步实现在医学图像分割领域,UNet 系列模型凭借其独特的编码器-解码器结构和跳跃连接机制,成为众多研究者的首选架构。而 UNet3 作为该家族的最新成员之一,通过创新的全尺度跳跃… 2026/7/8 22:22:10
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08