• 从手工设计到自动学习:目标检测的转折点
    虽然以DPM为代表的传统方法达到了很高的水平,但它们存在一个根本性的瓶颈:特征需要人工设计。这就好像你要让电脑认出一只猫,必须由研究人员一点点告诉它“猫有尖耳朵、圆眼睛、有胡须……”这些规则。这套复杂的“规则手册”不仅设计起来非常费时费力,而且信息量有限。这就带来了几个问题:一是计算过程慢;二是当场景变得复杂时,比如猫被挡住了一半、光线很暗或者姿势很奇怪,这套死板的“规则手册”就很容易失效,导致识别不准。因此,这类方法的适应能力和应用范围受到了很大限制。转机出现在2012年。一个名为AlexNet的深度神经网络在图像识别大赛中以惊人的优势夺冠。它的革命性在于:不再依赖人工规则,而是让机器直接从海量图片中自动学习“猫”应该是什么特征。这种自动学到的特征,其丰富度和适应性远超人类手工设计的任何“规则手册”。然而,图像分类(判断一张图里是不是猫)相对简单,目标检测(不仅要判断有没有猫,还要找出它在图里的具体位置)则复杂得多。于是,一个新的核心问题摆在了研究者面前:如何将这种强大的、自动学到的深度特征,巧妙地运用到“定位并识别”的目标检测任务中去呢?这成为了推动目标检测技术进入全新发展阶段的关键课题。
  • 可变形部件模型(DPM)
    2008年,Pedro Felzenszwalb、David McAllester和Deva Ramanan在IEEE CVPR上发表了论文《A Discriminatively Trained, Multiscale, Deformable Part Model》,提出了可变形部件模型(DPM)。这被视为传统特征工程时代目标检测方法的巅峰之一。DPM的核心思想是将物体看作由多个可变形部件组成的结构,比如人可以被拆分为头部、躯干、四肢等部件,每个部件由局部模板表示,并通过类似弹簧的位置约束连接起来。这种设计让模型能更好地处理目标在姿态、形状和视角上的变化,比单一的整体模板更鲁棒。在实现上,DPM结合了HOG特征、滑动窗口检测和支持向量机分类器,通过在多尺度图像上扫描,计算根部件模板和多个部件模板的响应,并根据部件相对理想位置的偏移来惩罚变形,最终综合得出检测置信度。这种部件级别的建模让DPM在面对遮挡、复杂姿态和背景时仍能保持较高性能。此外,DPM采用了一种称为潜变量支持向量机的训练机制,将正样本中部件的位置作为潜变量,通过交替优化来学习分类器参数,从而仅使用物体整体边界框标注就能自动学习部件的位置和形状。DPM在当时的PASCAL VOC挑战赛等评测中表现卓越,取得了领先的成绩,也因其贡献使Felzenszwalb在2010年获得了PASCAL VOC的终身成就奖。总体来看,DPM不仅是特征工程时代的集大成者,也为后来包括深度学习时代的部件感知网络设计提供了重要的结构化思想启示。
  • 人工智能干货合集(2025年12月)
    1. AI开发平台ModelArts新功能2025年12月份没有发布新功能。有连续3个月没有发布新功能了,也许下半年在做产品规划中,还在深蹲。2. 人工智能相关直播合集12月份的相关整理如下:Ascend C 构建多级API,支撑多维场景算子开发https://bbs.huaweicloud.com/live/cloud_live/202512011600.htmlasc-devkit, asc-tools 这2个开源仓的介绍… 基于Tque/Tpipe的编程范式是从2023年开始推广的。直播深入进行了AscendC算子编程语言的全部完整解析,希望深入了解的朋友可以好好看一看。PyAsc: 完备的Python高性能编程接口https://bbs.huaweicloud.com/live/cloud_live/202512021900.html和前面的直播一样,都是属于CANN开源开放系列直播,熟悉AscendC算子编程的朋友,也可以看一样PyAsc,使用Python编程也是可以的。Ascend C Vector算子模板库ATVOSS:极简、高效、高性能、高扩展的编程方式https://bbs.huaweicloud.com/live/cloud_live/202512031600.html这个直播就说道我的心坎上了,Tiling计算繁杂,很大程度上是在浪费人力,杀鸡用牛刀另外就是一个算子的多路径实现,组合太多的时候,对于开发者变成了一个纠结的难题。这个好,建议做AscendC vector算子开发的朋友们都来了解一下。HCCL开源开放全面解读https://bbs.huaweicloud.com/live/cloud_live/202512041600.html这个直播讲的是集合通讯算子的开源开发,之前也做过2个集合类算子的迁移,算是有点概念。对于AI和网络感兴趣的,可以看过来Qwen3系列长序列 & Agentic RL训练优秀实践https://bbs.huaweicloud.com/live/cloud_live/202512181600.html1.介绍在Qwen3-32B/235B模型长序列RL训练中使能SAM投机推理的优化实践,包含SAM投机解码原理、RL训练加速收益等。2.介绍基于verl-retool的昇腾Agentic RL训练入门实践样例Qwen3-4B-Instruct,包含样例实现方案和核心组件ToolAgent介绍。
  • 核方法:非线性分类的“隐维”捷径
    核方法是一种“作弊”的数学技巧,它允许我们处理复杂、非线性的数据时,仍然使用简单、高效的线性计算工具。本质问题:线性不可分很多真实数据(如图像特征)在原始空间中无法用一条直线(或一个平面)干净利落地分开。想象一下,在一张纸上,有一堆红点和蓝点混杂成一个圆环,你无法画一条直线把它们完美分成两类。这就是线性不可分。核心思路:升维映射核方法的聪明想法是:如果在这个维度(比如二维平面)里分不开,那就把数据点“投射”到一个更高维、甚至无限维的空间里去看看。 在那个更高维的空间里,数据点可能会呈现出清晰的、可以用一个超平面(高维空间的“直线”)分开的布局。继续上面的例子:把二维平面上的圆环状数据,映射到三维空间(比如加上一个 x² + y² 的维度),这些点可能就会神奇地“飘散”开,变得可以用一个平面轻松切分。“核”的魔法:避免直接计算但问题是,直接计算高维空间中的坐标和进行高维运算,其计算量是极其恐怖的,完全不现实。“核”的魔法就在这里。核函数(Kernel Function)是一个巧妙的数学工具,它可以直接计算出数据点在那个高维空间中的“相似度”或“距离”,而完全不需要知道、也不需要真正计算出数据点在高维空间中的具体坐标值。你可以把它理解为一个“捷径”或一个“相似度计算器”。最常用的核函数是径向基函数核,它可以隐式地将数据映射到无限维空间。在金字塔匹配核(PMK)的工作中:输入:两张图像,各自被表示为一组无序的、数量不一的特征向量集合。挑战:直接比较这两个“集合”的相似度很困难,因为它们不是规整的向量。解决方法(PMK):作者设计了一个特定的核函数(Pyramid Match Kernel)。这个核函数能直接、高效地计算两个特征集合之间的相似度。“基于核方法”的体现:有了这个核函数,我们就可以把它“喂”给标准的、强大的线性分类器(如支持向量机SVM)。SVM本身是线性分类器,但它与核函数结合后,就能在由这个核函数所定义的、隐式的高维空间中,找到最佳的分类超平面,从而完成复杂的图像分类或匹配任务。所以,基于核方法指的是一类通过设计和使用核函数,来隐式地在高维特征空间中进行有效学习和计算的技术范式。它让简单的线性模型拥有了解决复杂非线性问题的能力,同时规避了巨大的计算开销。在深度学习兴起之前,它是处理像图像分类这类复杂任务的主流且强大的数学框架。
  • 超越视觉词袋的空间金字塔匹配
    视觉词袋模型(BoVW)虽然有效,但它完全忽略了特征的空间位置关系,这严重限制了其对物体或场景结构的识别能力。为解决这一问题,2006年提出的空间金字塔匹配(SPM) 方法在视觉词袋的基础上,巧妙地引入了空间布局信息。其核心思想非常直观:将图像划分为多个由粗到细的层级网格,在不同层级上分别统计视觉单词的分布。具体做法是:建立多层网格:将图像划分为不同的空间层级。例如,第0层是整张图像(等同于传统词袋模型),第1层划分为2x2=4个区域,第2层划分为4x4=16个区域,形成一个空间“金字塔”。分层统计:在每一层的每一个小格子内,单独统计该区域内的视觉单词,生成一个局部词袋直方图。拼接融合:将所有层级、所有格子内的直方图拼接起来,组成一个最终的、融合了空间信息的图像特征向量。通常,更精细层级的匹配会被赋予更高的权重。这种方法相当于在询问图像内容时,不仅问“有哪些视觉单词”,还会问“这些视觉单词主要分布在图像的哪个区域”。例如,对于“天空”类场景,“蓝色”视觉单词应更集中在上半区域;对于“海岸”场景,“蓝色”(天空/海水)和“黄色”(沙滩)视觉单词会形成上下分布的模式。SPM能有效捕捉这种空间布局模式。因此,SPM通过一个简单而巧妙的分层空间分区设计,显著提升了词袋模型对图像结构的表达能力,成为当时图像分类任务的关键性方法,其多尺度空间融合的思想也持续影响着后续的深度学习模型。
  • 用“视觉词典”检索图像:词袋模型
    2003年,研究者(Josef Sivic 与 Andrew Zisserman 在 Proceedings of the Ninth IEEE International Conference on Computer Vision (ICCV 2003) 上发表了题为 “Video Google: A Text Retrieval Approach to Object Matching in Videos” 的论文)将文本检索领域的“词袋”思想成功引入计算机视觉,提出了一种创新的图像表示方法,极大地推动了图像检索和分类任务的发展。其核心思想是模仿文本处理:将一幅图像视为由许多“视觉单词”组成的“文档”。实现步骤如下:建立“视觉词典”:首先从大量图像中提取局部特征(如SIFT),然后对这些特征进行聚类(如使用k-means)。每个聚类中心就构成了“视觉词典”中的一个视觉单词,它代表了一类相似的局部模式。量化图像为“文档”:对于任意一张新图像,先提取其局部特征,然后将每个特征“指派”到视觉词典中最相似的视觉单词上。生成特征向量:最后,统计该图像中各个视觉单词出现的频率,形成一个视觉单词频率直方图。这个直方图向量就是图像的全局表示,它忽略了特征的具体位置,只关注“出现了哪些视觉单词,以及出现的次数”。这种方法让计算机可以用处理文本文档的方式(如建立倒排索引)来高效检索和匹配图像。只需比较不同图像对应的频率直方图,就能判断其内容相似度。视觉词袋模型开创了用无序局部特征集合来表示图像内容的范式,成为了后续更高级的图像表示方法(如空间金字塔匹配)的基础。
  • 传统特征设计的巅峰:HOG描述符
    在SIFT专注于“稀疏”关键点之后,2005年提出的方向梯度直方图(HOG) 特征(Navneet Dalal 和 Bill Triggs 在 IEEE CVPR 2005(Computer Vision and Pattern Recognition) 上发表了经典论文 Histograms of Oriented Gradients for Human Detection)转向了另一种思路:对图像进行密集、全局性的结构化描述,并针对特定目标检测任务(尤其是行人检测)进行了优化。其核心方法非常规整:密集计算:将图像划分为小的连通“细胞”单元。统计方向:在每个细胞单元内,统计所有像素的梯度方向,并汇总成一个方向直方图。这本质上是用直方图来描述局部区域的轮廓边缘走向。区块归一化:为了抵消光照和阴影变化的影响,算法将多个相邻的细胞单元组合成“区块”,并对区块内的所有直方图进行归一化处理,从而增强特征的鲁棒性。HOG特征的本质,是通过密集的局部梯度方向统计,来精确刻画目标(如行人)的整体外形轮廓和边缘结构。它在行人检测上取得了突破性成功,性能远超之前的边缘特征,并迅速成为经典目标检测器的标准特征提取模块,常与支持向量机(SVM)分类器结合使用。HOG标志着基于手工设计特征的视觉方法达到了一个成熟而高效的阶段。
  • 从全局到局部:SIFT特征的革命
    由于直接识别整个物体非常困难,研究者们转变思路,开始关注图像中稳定、可重复的局部关键点与纹理。这推动了各类特征描述符的发展,使其成为计算机视觉的核心。在这一潮流中,1999年由David Lowe提出的尺度不变特征变换(SIFT) 具有里程碑意义。SIFT的核心创新在于,它能够稳定地找到图像中“关键”的局部位置(即关键点),并提取一个具有强大不变性的“特征描述符”。这个算法主要分为两步:关键点探测:算法通过模拟图像在不同尺度下的模糊效果,寻找图像中在所有尺度上都保持稳定的极值点(例如某个角点在不同距离看都依然是角点)。这保证了特征对尺度缩放不敏感。描述符生成:为每个关键点计算其周围区域的梯度方向分布,并形成一个独特的“指纹”向量。这个向量对图像的旋转、光照变化也具有一定的稳定性。因此,SIFT特征就像一个物体的“局部指纹”,即使这个物体在图片中被旋转、放大缩小或光线有所改变,其SIFT“指纹”依然能被匹配识别。这一突破使其在物体识别、全景图拼接等任务中得到广泛应用,并深刻影响了后续如SURF、ORB等更快速特征描述符的设计。
  • 20年前的快速人脸检测方法
    Viola和Jones发表于2001年的论文提出了一种在当时能够“实时”检测人脸(比如在视频里快速找到人脸)的经典方法。它的核心思路非常巧妙:用最简单、最快的方法,先排除掉明显不是人脸的区域,只对剩下的少数“可疑”区域进行仔细检查。为了实现这个思路,它主要靠三个关键技术:简单特征(Haar特征):它不像人眼那样看整体,而是看图像中明暗方块的简单对比(比如眼睛区域通常比脸颊暗),这种特征计算起来非常快。积分图:这是一个“预计算”的小技巧。它提前算好一幅图的累计数据,之后无论需要计算图上哪个方块的特征,都能瞬间得出结果,这是实现速度飞跃的关键。级联分类器(核心设计):这是整个方法最聪明的地方。它不是一个复杂的检测器,而是一连串由简到繁的“关卡”。第一关可能只用一两个最简单的特征,在几毫秒内就能拒绝掉图像中超过50%的明显不是人脸的背景区域。通过第一关的“可疑区域”才会进入第二关,第二关的检查稍微复杂一点,又会筛掉一批。这样一层层过滤,只有通过所有关卡的区域,才被最终认定是“人脸”。绝大部分区域都在最开始的简单关卡就被快速淘汰了,所以系统不需要对每个地方都进行复杂计算,整体速度就变得非常快。简单来说,这个方法就像一个高效的安检流程:先用金属探测器快速过一遍大部分人(级联的早期关卡),只对报警的少数人(可疑区域)再进行开箱仔细检查(级联的后期关卡)。正是这种“快速否定,谨慎确认”的策略,让它在20多年前的电脑上就能实时运行,并广泛应用在了早期的数码相机和摄像头上。
  • [课程] 使用教程 | 华为云智果AgentArts智能体平台 开发者学习地图上线~(持续更新)
     < 华为云AgentArts智能体平台 体验入口>控制台--AgentArts (请在PC端打开) 01 初识平台平台资源订购指导开通服务基本概念什么是AgentArtAI相关术语介绍快速入门案例搭建第一个智能体搭建知识库问答工作流通过模板搭建智能体最新动态版本发布说明  02 实践案例共创最佳实践最佳实践案例汇总视频案例指导视频帮助案例中心Agent搭建优秀案例汇总常见问题平台常见问题FAQ  03 低代码开发AI应用开发开发单智能体应用开发工作流应用开发多智能体应用组件库插件skillMCP知识库提示词平台能力资产广场模型   04 高代码开发高码智能体开发开发概述开发流程组件库沙箱工具记忆库网关智能体运行时介绍部署 SDK文档导读  05 智能体运营运维运营运维观测评测  06 OfficeAce办公智能体(PC版)平台介绍产品介绍使用说明FAQ   07 云学堂课程赋能功能详细解读AgentArts:模型接入与单智能体应用AgentArts工作流开发:构建复杂业务逻辑AgentArts多智能体开发:实现智能体协同架构AgentArts:插件与知识库集成实战   08 产品理念平台能力介绍HDC.2025Versatile品牌发布产品能力总览——打造最佳企业级Agent平台技术点解读插件类——MCP/工具能力详解知识库/RAG能力详解  点击可前往>>华为云AgentArts智能体平台 官网 点击可前往>>华为云OfficeAce办公智能体 官网
  • [技术干货] 12月份人工智能【FAQ合集】来了!
    12月份人工智能【FAQ合集】来了!想要部署爬虫智能体,请问是用playwright-mcp还是brightdata-mcp?如何使用deepseek结合brightdata-mcp实现自动化舆情监测?如何使用n8n结合亮数据网页抓取API实现爬虫工作流?如何通过dify接入亮数据网页解锁API,实现自动化数据采集?Modelarts的notebook里面的EVS存储,可以外挂访问吗?使用图像分类2.0进行模型训练时,模型训练报错[rank6]: UnboundLocalError: local variable ‘avg’ referenced before assignment使用CV-图像分类2.0进行训练,模型训练过程中报错:IndexError: index 1 is out of bounds for axis 0 with size 1CV-物体检测S3.0模型进行训练,训练报错IndexEroor:index 67 is out of bounds for axis o with size 9CV模型-图像分类2.0进行模型训练时,模型训练报错[rank6]: UnboundLocalError: local variable ‘avg’ referenced before assignment豆包AI手机跨应用操作遭主流APP集体封禁 SpeedScaler 的 AI 驱动工厂即服务平台,是否可行?12月人工智能FAQ内容聚焦开发工具集成、模型训练故障及行业动态。工具层面关注爬虫智能体部署方案,涉及Playwright与BrightData组件的选择,以及如何结合DeepSeek、n8n、Dify等平台构建自动化数据采集与舆情监测流程。模型训练问题集中于CV图像分类和物体检测任务,典型报错包括分布式训练中的数据同步缺陷导致的变量未初始化错误,以及标签索引越界问题,需重点核查损失函数匹配性和数据加载逻辑。行业热点涉及豆包AI通过视觉模拟技术实现跨应用操作遭主流APP封禁,反映自动化工具与平台规则的冲突;另有关注AI驱动工厂即服务平台的可行性探讨。本月内容呈现技术实操与前沿应用并重的特点。
  • 检测窗口的盲人摸象问题
    当时的研究者们通过一整套系统性的工程策略,在相当程度上缓解了这个问题,虽然这些策略在今天看来计算效率低下。核心假设与目标:这套方法有一个隐含但关键的前提——它假设人脸在这个固定的、非常近的观察尺度下(19×19),具有某种相对稳定、可区别的局部纹理或灰度模式。它的目标不是通过一个窗口就“理解”整张脸的完整结构和语义(那是后来深层神经网络做的事),而是像用一个特定形状的“探测器”或“模板”,去扫描图像,寻找与之最匹配的局部区域。它寻找的是“像人脸局部”的图案,而非完整的脸。应对“大象”比“窗口”大的问题(多尺度检测):这是解决“盲人摸象”最直接的一环。如果人脸实际大小是76×76像素,一个19×19的窗口当然只能摸到鼻子或眼睛。他们的解决方案是构建图像金字塔。也就是说,不是改变窗口大小,而是不断缩小整个输入图像。这样,原本76×76的人脸,在某一层缩小的图像里,其尺寸就会接近19×19。然后,再用同一个19×19的窗口在金字塔的每一层图像上进行滑动扫描。这样一来,同一个检测器(窗口)就能覆盖各种尺度的人脸。应对“大象”结构复杂的问题(多窗口组合与后续处理):单一窗口即便在正确尺度上,也可能只匹配了脸的一部分(比如只匹配了眼睛区域,而嘴巴区域不像)。这会导致两个结果:大量假阳性(误报):很多非人脸区域(比如纹理复杂的树叶、窗户格)也可能偶然匹配了“人脸局部”模式。需要整合:一个真正的人脸可能会在相邻的多个位置触发多个“检测响应”。对此,论文中采用了一些后处理策略:非极大值抑制:将那些在空间上聚集的、重叠的检测窗口合并为一个,代表最可能的人脸位置。上下文或仲裁机制:在一些更完善的系统中(如Rowley的神经网络方法),会使用多个检测器或后续网络对初步结果进行校验和仲裁,过滤掉那些孤立的、不符合人脸整体布局的误报。总结来说,用极小窗口直接扫描,本质上是一种基于局部纹理匹配的“模式探测”。它放弃了全局语义理解,转而依靠密集采样(滑动)、多尺度覆盖(金字塔)和智能过滤(后处理)来拼凑出完整目标。这种方法计算冗余大、易受局部干扰,但在深度学习时代之前,这已经是结合了学习能力(SVM/神经网络分类器)后最有效的自动化方案之一。直到能够自动学习多层次、全局到局部特征的卷积神经网络(CNN) 出现,检测任务才真正从“盲人摸象”进化到了“纵观全局”。CNN通过卷积核在整图上共享参数进行特征提取,并通过深层网络结构整合上下文,从根本上更优雅地解决了尺度、位置和结构理解的问题。
  • 支持向量机(SVM)用于模式识别
    在《Training Support Vector Machines: An Application to Face Detection》这篇论文中,研究者采用了“滑动窗口 + 二分类模型”的经典检测框架:将固定大小(例如19×19像素)的窗口遍历整幅图像,每个窗口的像素强度值被直接提取出来,作为支持向量机(SVM)分类器的输入特征。SVM的核心任务,就是对这个窗口进行“人脸”或“非人脸”的二分类判断。研究的关键在于系统地应用了支持向量机这一统计学习模型。SVM通过寻找一个能够最大化两类样本间隔的最优超平面(可以是线性的,也可以通过核函数映射到高维空间)来进行决策,而这个决策边界仅由少数关键的训练样本——“支持向量”所决定。Osuna等人的工作在当时的重要意义在于,他们验证了SVM能够有效处理像图像像素这样高维且结构复杂的视觉数据,并从理论上保证了模型具有良好的泛化能力,即面对未见过数据时依然能保持稳定的分类性能。论文通过标准的训练与测试数据集验证了方法的有效性,但同时也揭示了其时代的局限性。SVM的最大间隔原则带来了出色的泛化性能,这使得即使在训练样本有限的情况下,系统也能可靠工作,展示了统计学习理论在视觉问题中的巨大潜力。然而,其局限性也很明显:一方面,直接使用原始像素作为特征,其判别能力有限;另一方面,SVM在当时(尤其是使用非线性核时)的计算成本较高,加之滑动窗口检测范式本身计算密集,导致整个系统难以实现实时处理与大规模部署。因此,从技术演进的视角看,这项工作的历史贡献主要不在于构建了一个实用的工程系统,而在于它成功地将严谨的统计学习理论(以SVM为代表)引入了计算机视觉领域,特别是人脸检测这一具体问题。它深刻地影响了后续研究对于“如何构建最优分类边界”这一核心问题的思考,并为SVM及相关方法在更广泛的物体检测与识别任务中的应用,铺就了重要的思想基石。
  • 早期利用神经网络的人脸检测
    1996年Rowley等人的这篇论文《Neural Network-Based Face Detection》是早期利用神经网络解决人脸检测问题的经典工作,它采用了一种直白但有效的思路:研究者构建了一种称为“视网膜连接神经网络”的简单前馈网络,其任务是对输入图像中的每一个小窗口(比如20×20像素的局部区域)进行人脸或非人脸的判断。为了检测不同大小的人脸,论文采用了图像金字塔方法——即将原始图像缩放到多个不同尺度,然后在每一层缩放图像上都用同一个网络进行滑动窗口搜索,这样就覆盖了各种可能的尺寸。在训练策略上,研究者设计了一种称为“bootstrap”的自举机制:初始训练后,用网络在非人脸图像中检测,将其错误识别为“人脸”的窗口加入负样本集再次训练,从而不断让网络学会区分更困难的非人脸模式,减轻了手动收集大量负样本的负担。此外,系统通过组合多个网络的判决结果进行仲裁,有效提高了检测的稳定性与准确率。实验显示,该方法在当时能在复杂场景中实现较高的人脸检出率与较低的误报率。这项工作的意义在于,它较早地将“学习”思维引入视觉检测任务中,展示了神经网络在无需人工精细设计特征的情况下从数据中学习判别模式的能力。虽然今天看来其网络结构和方法相对简单,但它启发了后续许多关键发展——如何恺明就曾提到这篇论文让他理解了“用学习方法解决视觉问题”的基本逻辑。它也为后来更强大的方法(如Boosting、卷积神经网络等)提供了重要的思想铺垫,成为人脸检测乃至通用物体检测技术演进中的一个奠基性节点。
  • [技术干货] LLVM编译器框架
    LLVM(Low Level Virtual Machine)是一个编译器框架,不是单个编译器,而是一套用于构建编译器的工具集合。LLVM 最著名的特点是它的三段式设计:前端(Frontend) → 中间表示(IR) → 后端(Backend)1. 前端将不同的源代码(C、C++、Rust、Swift等)转换成统一的中间表示(IR)比如 Clang 就是 LLVM 的 C/C++ 前端2. 中间表示(IR)这是 LLVM 的核心创新一种与具体语言和硬件无关的中间代码所有优化都在 IR 层面进行3. 后端将优化后的 IR 转换成目标平台的机器码支持 x86、ARM、GPU、AI 加速器等比如命令参数:-mllvm -cce-aicore-stack-size=0x8000 -mllvm -cce-aicore-function-stack-size=0x8000表明毕昇编译器是基于 LLVM 框架构建的。避免重复造轮子LLVM 提供了成熟的优化框架可以专注于 AI 处理器特有的优化模块化设计只需开发Ascend处理器后端重用 LLVM 的前端和优化器统一的优化基础设施所有优化算法(循环优化、向量化等)都已实现可以添加专门的 AI 加速器优化许多公司和项目都在用 LLVM:公司/项目使用方式AppleSwift 编译器、XcodeGoogleAndroid NDK、TensorFlowNVIDIACUDA 编译器AMDROCm 平台IntelOneAPIMicrosoft.NET Native、DirectX 着色器编译器可以把 LLVM 想象成 “编译器界的 Linux 内核”:Linux 内核:提供基础的系统功能,各厂商在其上构建自己的发行版LLVM:提供基础的编译器功能,各公司在上面构建自己的编译器或者想象成 “编译器框架的乐高积木”:LLVM 提供了各种标准积木块用这些积木块,加上自己特制的 AI 积木,搭建出 Ascend 编译器# 这些参数都是传递给 LLVM 底层优化器的 -mllvm -cce-aicore-stack-size=0x8000 # 告诉LLVM如何设置栈 -mllvm -cce-aicore-record-overflow=false # 控制LLVM的溢出检测 -mllvm -cce-aicore-addr-transform # 启用地址转换优化
总条数:7864 到第
上滑加载中