当前位置: 首页 > article >正文

AI软件栈:LLVM分析(一)

文章目录

  • AI 软件栈后端编译
  • LLVM IR
  • LLVM的相关子项目

AI 软件栈后端编译

  • AI软件栈的后端工作通常与硬件架构直接相关,为了实现一个既能适配现代编程语言、硬件架构发展的目标,所以提出了LLVM
  1. 具备多阶段优化能力
  2. 提供基础后端描述,便于进行编译器开发
  3. 兼容标准编译器的行为

LLVM IR

  • LLVM设计了一套底层描述策略(也可以称之为虚拟指令集,LLVM IR),属于低级中间表示,携带了程序的类型信息,即方便了静态编译优化,又可以允许在链接时进行优化。支持编译时、链接时和运行时优化,LLVM IR是关键
  • LLVM IR具有一下特点
    1. 这个IR描述的虚拟架构具有常规处理器的关键操作,并减少了相关约束
    2. 提供了无线数量的类型化虚拟寄存器,采用SSA的形式便于编译优化
    3. 提供了特有的指令,显示描述异常控制流信息
    4. 约定了寄存器与内存的行为方式。例如紧靠load、store进行数据交换,交换时需明确数据类型。内存被区分为全局区域、栈、堆,其中栈和堆的对象分别使用alloca和malloc指令进行空间分配,并通过函数单反毁的指针值来访问相应空间。栈对象在当前函数的栈帧中进行分配,控制流离开函数时自动释放,堆对象必须使用free指令进行显示释放
    5. LLVM IR继承了运行时和系统函数,例如IO、内存管理和信号量等相关函数。并且提供了文本、二进制和内存三种文件格式便于开发存储和运行
    6. 最后,LLVM IR还提供了多种PASS参考以及配套的工具集,包括汇编、反汇编、解释器、优化器、编译器和测试套件等


http://www.kler.cn/a/523249.html

相关文章:

  • Cannot resolve symbol ‘XXX‘ Maven 依赖问题的解决过程
  • vue-有关于TS与路由器
  • 【学习笔记】计算机网络(二)
  • Nginx 开发总结
  • Versal - 基础3(AXI NoC 专题+仿真+QoS)
  • Linux进程调度与等待:背后的机制与实现
  • kafka消费者详细介绍(超级详细)
  • 02-机器学习-核心概念
  • games101-(5/6)
  • 蓝桥云课下载(jdk11、eclipse、idea)
  • 机器人抓取与操作概述(深蓝)——1
  • C++ | 红黑树
  • 2025年01月28日Github流行趋势
  • qwen2.5-vl:阿里开源超强多模态大模型(包含使用方法、微调方法介绍)
  • 怎样在PPT中启用演讲者视图功能?
  • 苍穹外卖使用MyBatis-Plus
  • WSL安装CUDA
  • 大模型本地部署流程介绍
  • 变压器的漏感
  • WSL 安装cuDNN
  • 基于PyQt设计的智能停车管理系统
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 机器学习 深度学习 音乐可视化 音乐爬虫 知识图谱 混合神经网络推荐算法 大数据毕设
  • IME关于输入法横屏全屏显示问题-Android14
  • C++中函数返回值当引用
  • 每日一题-判断是否是平衡二叉树
  • NoSQL与SQL比较