XLA - 加速线性代数

文章目录

    • 一、关于 XLA
      • XLA目标
      • XLA 运作方式
    • 二、Community
      • 沟通渠道
      • 其他资源
      • 存储库


一、关于 XLA

XLA : Accelerated Linear Algebra

  • github : https://github.com/openxla/xla
  • OpenXLA Community : https://github.com/openxla/community
  • XLA - TensorFlow : https://tensorflow.google.cn/xla?hl=zh-cn
  • 开发教程:https://github.com/openxla/xla/blob/main/docs/developer_guide.md

XLA(加速线性代数)是一款用于GPU、CPU和ML加速器的 开源机器学习(ML)编译器。

XLA 编译器采用流行的 ML框架(如PyTorch、TensorFlow和JAX)中的模型,并对其进行优化,以在包括 GPU、CPU和ML加速器在内的不同硬件平台上 实现高性能执行。


XLA目标

如今,XLA 支持多种机器学习框架前端(包括 PyTorch、TensorFlow 和 JAX),并且是 OpenXLA 项目的一部分。

OpenXLA 项目是一个用于机器学习的开源编译器技术生态系统,由领先的机器学习硬件和软件组织协作开发。

在创建 OpenXLA 项目之前,XLA 是在 TensorFlow 项目中开发的,但基本目标保持不变:

  • 提高执行速度。 编译子图以缩短短期有效的操作的执行时间并消除运行时的开销,融合流水线操作以减少内存开销,并专门化已知张量形状以实现更积极的常量传播。
  • 提高内存用量。 分析和调度内存用量,消除许多中间存储缓冲区。
  • 减少对自定义操作的依赖。 通过提升自动融合的低级别操作的性能,使其匹配最初手动融合的自定义操作的性能,从而不再需要许多自定义操作。
  • 提高可移植性 。为新型硬件编写新后端相对简单,以便大部分机器学习模型无需修改即可在该硬件上运行。这与为新硬件专门处理单个单体式运算的方法相反,后者需要重写模型才能利用这些运算。

在这里插入图片描述


XLA 运作方式

XLA 编译器从 StableHLO 中定义的机器学习框架获取模型图,并将它们编译为适用于各种架构的机器指令。

StableHLO 定义了一个版本化操作集(HLO 表示高级操作),可在机器学习框架和编译器之间提供可移植层。

通常,将模型图转换为针对目标优化的可执行文件的编译过程包括以下步骤:

  1. XLA 对独立于目标的 StableHLO 图执行多次内置优化和分析传递,例如用于为计算分配运行时内存的 CSE、与目标无关的操作融合和缓冲区分析。在此优化阶段,XLA 还会将 StableHLO 方言转换为内部 HLO 方言。
  2. XLA 将 HLO 计算发送到后端,以进一步优化 HLO 级别的优化,这次同时考虑到特定于目标的信息和需求。例如,GPU 后端可以执行对 GPU 编程模型特别有益的操作融合,并确定如何将计算划分为数据流。在此阶段,后端还可以将某些操作或其组合与优化的库调用进行模式匹配。
  3. 然后,后端执行特定于目标的代码生成。XLA 中包含的 CPU 和 GPU 后端使用 LLVM 进行低层级 IR、优化和代码生成。这些后端发出以高效方式表示 HLO 计算所需的 LLVM IR,然后调用 LLVM 以从此 LLVM IR 中发出原生代码。

在此过程中,XA 编译器是模块化的,因为它可以轻松插入替代后端,以以某些新颖的硬件架构为目标。GPU 后端目前通过 LLVM NVPTX 后端支持 NVIDIA GPU。CPU 后端支持多个 CPU ISA。


二、Community

OpenXLA 是一个社区驱动的开源 ML 编译器生态系统,采用了 XLA、MLIR 和 IREE 的最佳功能。社区存储库存储了 OpenXLA 开发者社区使用的文档:

  • 治理- OpenXLA 的运营流程
  • 社区会议- OpenXLA 社区公开会议的时间表、议程和会议记录

沟通渠道

  • openxla-discuss邮件列表- 关于 OpenXLA 项目及其组件的技术和社区对话、社区会议邀请和议程。这是我们的主要渠道。
  • openxla-announce邮件列表- OpenXLA 项目维护人员不频繁发布的公告,包括项目新闻、事件和主要版本。
  • OpenXLA Discord - 有关顶级项目更新以及和的开发的同步/xla聊天/stablehlo
  • IREE Discord - 关于开发的同步聊天/iree

其他资源

  • 社区日历- 添加到您的日历以订阅所有社区会议和活动。
  • Google Drive 文件夹- 项目维护者共享的公共文件;无需 Google 登录即可查看。
  • OpenXLA 标识- 有关使用标识或其他品牌资产的指导,请联系 openxla-brand at openxla dot org。

存储库

  • StableHLO:ML 框架和 ML 编译器之间的可移植性层。
  • XLA:主要 XLA 代码库(从 tensorflow/compiler/xla 迁移)。
  • IREE:基于 MLIR 的 ML 模型端到端编译器和运行时。请注意,IREE 有自己的通信通道(请参阅其 README)。

2024-05-30(四)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink SQL查询语法部分详解(提供需求、数据练习复现)

一、Hints 动态表选择:可以在查询表的时候动态修改表的参数配置 1、读取kafka的数据建表 CREATE TABLE students (id STRING,name STRING,age INT,sex STRING,clazz STRING ) WITH (connector kafka,topic students, -- 指定topicproperties.bootstrap.servers …

高效扫码点餐:简餐茶饮外卖新体验

前言 在快节奏的现代生活中,高效便捷的扫码点餐系统正逐渐成为简餐茶饮行业的新宠。这一系统不仅提升了顾客的点餐体验,还优化了门店的运营效率,特别是基于总部多门店的连锁模式,更是将这一优势发挥得淋漓尽致。 一、这款扫码点餐…

如何通过PHP语言实现远程控制多路照明

如何通过PHP语言实现远程控制多路照明呢? 本文描述了使用PHP语言调用HTTP接口,实现控制多路照明,通过多路控制器,可独立远程控制多路照明。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂…

软理复习范围

1.直觉主义逻辑常采用三值逻辑来处理命题的真值,包括以下三个真值: 真(True):表示命题是确定为真的。假(False):表示命题是确定为假的。未知(Unknown)&#…

Prism 入门02,区域介绍

一.区域概念和使用方式 什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心功能之一,其主要作用是降低应用程序和模块之间的耦合度 。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以…

el-tabel名称排序问题

el-tabel排序 最终实现功能如下: 排序限制为: 文件夹>普通文件 数字(0->9)->大写字母(A->Z)->小写字母(a->z)->中文拼音(a->z) 正序…

Unity开发Cosmos使用BNG Framework获取按键信息

Unity开发Cosmos使用BNG Framework获取按键信息 1、新建一个脚本&#xff0c;复制下面代码 using BNG;[Header("Input")]//[Tooltip("The key(s) to use to toggle locomotion type")]public List<ControllerBinding> locomotionToggleInput new …

处理无法拉取GitHub库的解决方案

提交和拉取github上的库总是失败&#xff0c;这里记录一下如何使用代理解决。 首先找到端口&#xff0c;记住它的端口 然后使用git命令 # HTTP/HTTPS 协议 git config ––global http.url.proxy http://127.0.0.1:port # 以 Github 为例 git config ––global http.https:/…

短网址生成原理及使用

生成短网址介绍&#xff1a; 一、定义 短网址&#xff08;Short URL&#xff09;是形式上比较短的网址&#xff0c;它通过将原始冗长的网址进行缩短&#xff0c;方便用户分享和记忆。短网址的生成主要依赖于特定的算法和服务&#xff0c;通过后端服务转向来实现网址的缩短。 …

什么是人机协同翻译

什么是人机协同翻译 序什么是人机协同翻译账号绑定服务开通文档翻译图片翻译体验感受及建议 序 什么是人机协同翻译&#xff0c;为什么会需要人机协同翻译&#xff0c;以及人机协同翻译的效果&#xff0c;应用场景等&#xff0c;本文将关于这些内容一一解答。 什么是人机协同…

大语言模型RAG-将本地大模型封装为langchain的chat model(三)

大语言模型RAG-将本地大模型封装为langchain的chat model&#xff08;三&#xff09; 往期文章&#xff1a; 大语言模型RAG-技术概览 (一) 大语言模型RAG-langchain models (二) 上一期langchain还在0.1时代&#xff0c;这期使用的langchain v0.2已经与之前不兼容了。 本期介…

【调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持】

调试笔记-系列文章目录 调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持 文章目录 调试笔记-系列文章目录调试笔记-20240604-Linux-为 OpenWrt LuCI 界面添加多语言支持 前言一、调试环境操作系统&#xff1a;Ubuntu 22.04.4 LTS编译环境调试目标 二、调试步骤预…

mysql使用sorce、load 导入数据

1、本机安装mysql https://blog.csdn.net/weixin_52687711/article/details/130509902 注意&#xff1a;修改安装路径 配置环境变量 2. 使用sorce命令导入数据 https://blog.csdn.net/2301_82257317/article/details/138332048 使用mysql命令框链接目标数据库 以管理员身份运…

Echarts柱状图数据太多,自定义长度之后,自适应浏览器缩放

不知道是不是最优解&#xff0c;但是当前解决了我遇到的问题&#xff0c;如有更好的方法&#xff0c;希望看到这篇文章的同学可以不吝指导一番&#xff0c;非常感谢 1、问题描述&#xff1a; 因Ecahrts柱状图数据有时多有时少&#xff0c;所以在数据达到一定程度之后&#xff…

第54期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Spring Boot 实现动态数据源配置

前言 之前在CSDN博客以及某站看了教程&#xff0c;不免觉得有点不知如何下手&#xff0c;好在最后融合了以下&#xff0c;得出了一个比较简单的配置动态数据源的过程。 首先项目是Spring Boot的单体项目&#xff0c;我们的需求是要连接多个数据库&#xff0c;那么就需要配置多个…

产品经理:做好有效的客户需求分析

需求分析是产品开发过程中的重要环节&#xff0c;它直接决定了产品是否能够满足市场需求和用户期望。通过深入了解客户需求&#xff0c;产品经理可以确保产品功能的设计符合用户的实际需求&#xff0c;从而提高产品的用户满意度和市场竞争力。 一、识别用户需求 识别用户需求…

目标检测数据集 - 海洋垃圾检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;海洋垃圾检测数据集&#xff0c;真实拍摄海洋海底场景高质量垃圾检测图片数据&#xff0c;涉及场景丰富&#xff0c;比如海底塑料垃圾数据、海底铁制品罐状垃圾数据、海底纸张垃圾数据、海洋生物和海底垃圾同框数据、海底探索仪器和海底垃圾同框数据、海…

【ArcGIS微课1000例】0114:基于DEM地形数据整体抬升或下降高程

相关阅读:【GlobalMapper精品教程】083:基于DEM整体抬升或下降地形高程的两种方式 文章目录 一、任务分析二、栅格计算器简介三、地形整体修改四、注意事项一、任务分析 打开软件,加载配套实验数据中的0112.rar中的dem数据,如下所示,dem的高程范围为256.75~342.37米,现在…

用PlantUML描绘C++世界:通过文本描述精准控制UML图的生成

往期本博主的 C 精讲优质博文可通过这篇导航进行查找&#xff1a; Lemo 的C精华博文导航&#xff1a;进阶、精讲、设计模式文章全收录 前言 在编写程序时&#xff0c;可视化的工具可以极大地帮助我们理解和设计复杂的系统。对于C程序员来说&#xff0c;一个强大的工具是UML&am…