- 博客(325)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 IREE 调度机制深度解析:静态编译与动态执行的协同优化
IREE (IR Execution Environment) 作为 TensorFlow 生态的重要成员,通过多层次调度策略实现了跨硬件平台的高效执行。其调度系统融合了编译期静态优化与运行时动态调整,在保证任务依赖正确性的同时,最大化硬件资源利用率。本文将从核心机制、技术细节与实现路径三个维度深入解析 IREE 的调度算法。
2025-03-21 21:49:43
630
原创 IREE 内存分配算法概述
IREE 在编译和运行时均对内存分配进行了专门设计,主要目标是高效利用有限的内存资源,降低碎片,并满足目标硬件(如 TPU、NPU 等)的对齐和布局要求。总体上,其内存分配策略可以分为编译期的静态内存规划和运行时的内存子分配。
2025-03-21 21:41:05
987
原创 IREE AI编译器编译测试流程指南
通用 CPU 后端(默认选项)基于 LLVM 编译器优化 CPU 指令支持 x86/ARM 等主流 CPU 架构适合没有专用加速硬件的设备苹果专有 GPU 加速方案支持 iOS/macOS 设备的 Metal API适配 Apple Silicon(M 系列芯片)和 A 系列芯片需要 macOS 10.13 + 或 iOS 11+3. vmvx针对 Intel 视觉处理单元(VPU)如 Movidius Myriad X 等边缘 AI 芯片适合低功耗嵌入式设备的视觉推理。
2025-03-20 23:17:09
1054
原创 AI Agent开发技术框架选型概要
模块化工具链框架,连接大语言模型(LLM)与外部数据源、工具和 API。:低代码 AI 应用开发平台,支持通过 YAML 配置文件快速构建智能体。:基于 GPT-4 的自主 AI 代理,可通过自然语言指令完成复杂任务。:字节跳动推出的低代码 AI 开发平台,侧重多模态交互和生态整合。:阿里巴巴达摩院开发的多智能体协作框架,模拟人类团队分工。:个人开发者 → 被 Anthropic(组织)收购。:Dify.ai(组织)。:阿里巴巴达摩院(组织)。:字节跳动(组织)。
2025-03-16 13:19:15
893
1
原创 论文:KernelBench: Can LLMs Write Efficient GPU Kernels?
在网上看到可以使用LLM来写cuda内核了?太厉害了作为编译器工程师, 特别想知道是怎么做到的,非常的好奇,他的提示词是怎么写的,工作流程是什么样子。把论文下载下来研究下, 回头有机会也试试,看看效果怎么样。但是从论文来看,效果其实不是很好。测试的模型结构整体也是比较简单,感觉有点像玩具属性???
2025-02-28 22:01:44
1042
原创 LLM大语言模型推理加速调查报告:Towards Efficient Generative Large Language Model Serving: A Survey from Algorithms
我们提供深入的分析,涵盖一系列解决方案,从尖端算法修改到系统设计的突破性变化。该调查旨在全面了解高效LLM服务的现状和未来方向,为研究人员和从业者克服有效LLM部署的障碍提供宝贵的见解,从而重塑人工智能的未来。LLMs前所未有的成功也带来了一些挑战,最值得注意的是,它们在服务期间的强大计算要求。巨大的模型尺寸和复杂性,加上对大量计算资源的需求,阻碍了它们在现实应用中的广泛部署。
2024-12-24 22:29:30
1349
4
原创 mlir的Linalg方言介绍
受启发来源与设计优势:从先前艺术中获取灵感,其设计允许定义具有通用属性的自定义操作,支持关键变换,操作数可为张量或缓冲区,输出张量有 “init 张量”(提供初始值,通过迭代更新结果,可能被优化为寄存器级 SSA 值,期望可重写为缓冲区的原位更新)和 “仅形状”(仅携带形状信息,未来可能被合适形状类型替代)两种类型。承载有效负载操作的属性属性 1:输入和输出操作数定义迭代空间。
2024-11-20 21:32:01
1118
原创 解码 IREE:Tensorflow 和 TFlite 模型迈向 MLIR 前端 IR 的转换秘籍
在使用WSL进行嵌入式软件开发的时候,在debug方面,比较好用的工具有Ozone,那在Windows下调试需要配置和注意的点,在这里跟大家分享一下。的配置文件,我们需要调整这个配置文件, 让Ozeon知道代码和。工程保存, 会生成一个。
2024-11-09 11:31:57
669
原创 STM32F429IGTx_FLASH.ld:56: syntax error [build] collect2: error: ld returned 1 exit status
今天更新了touchgfx, 生成的cmake工程编译一直报错。经过一番搜索查找,终于给找到原因了。ST这个玩意写出bug了。(你的文件可能是其他名字,但是后缀是一样的,就LD文件)当然如果你跟我一样懒得折腾,那修改点东西也可以。官网发通知呼吁大家继续使用。
2024-11-08 22:13:50
596
2
原创 微软商店无法加载,检查你的连接-解决方案
网上的修复方法基本都是基于微软官方的回复。亲测对于代理导致的无法连接无法修复。然后我在哔哩哔哩的视频下方,看到大家留言,测试了一下,果然修复了。会提示是IE网络问题,点击一键修复即可修复。如果有代理,关闭代理就可以恢复网络了。下载火绒安全 -> 选择 断网修复即可。但是我就是想用代理,我感觉代理更快,再去观察微软商店,发现已经好了。微软商店默认直连国内的服务器。搜索了很多办法,都没有生效。
2024-08-04 14:53:02
1431
原创 一文带你读懂MLIR论文,理解MLIR设计准则.
研究背景、研究问题、研究目的和研究的意义一种构建可重用和可扩展编译器基础设施的新方法。MLIR 解决了软件碎片问题、异构硬件编译问题,显着降低了构建特定领域编译器以及将现有编译器连接在一起的成本。MLIR 在不同的抽象层次,不同应用领域,不同硬件目标和不同执行环境下加快代码生成器,翻译器和优化器的设计和实现。从研究的角度探讨MLIR 的扩展和演进,给出该方法在设计、语义、优化、系统及工程方面的机遇与挑战。
2024-07-21 22:26:59
1696
原创 MLIR的TOY教程学习笔记
MLIR 中,每一个operation都与代码位置强相关,不像LLVM,可以随意删除。MLIR可以自定义IR的所有属性,operation,type,同时IR总是可以简化为上述途中的格式。这样统一的格式,就方便了MLIR解析和重新表示任何IR。定义方言代码形势tablegen通过代码操作,略定义OP定义参数和结果// 文档}];// 输入// 输出// 验证器,设置为1是为了生成1个默认的验证方法,该方法会在该OP的构造器完成后调用。
2024-07-21 21:37:12
1362
原创 一文看懂LUT(Lookup Table)查找表
对于ReLU激活函数,公式如下: ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)ReLU(x)=max(0,x) 可以看到,ReLU函数将输入值变成非负值(负值变为0,正值保持不变)。对于激活函数(例如ReLU),使用LUT可以在一定范围内通过查找预计算的值来近似函数计算,从而提高计算效率。LUT的基本原理是将函数值预先计算并存储在一个数组或字典中,然后在需要计算函数值时,通过查找这个表格来快速获得近似值。假设激活函数relu,想要通过LUT方法来做,该怎么做?
2024-07-14 15:06:03
2195
原创 轻松理解c++17的string_view
是一个高效的、不拥有的字符串视图类,设计用于提高字符串处理的性能和简便性。它在不复制字符串数据的情况下,提供了丰富的字符串操作接口,使得字符串处理更高效、代码更简洁。
2024-07-10 22:54:36
807
原创 c++的constexpr和constvalue的区别
constexpr可以用于变量和函数,函数可以在编译时或运行时求值。consteval只能用于函数,并且强制要求函数必须在编译时求值,不能在运行时调用。这两个关键字提供了不同的常量表达式处理机制,允许程序员在不同的场景下进行选择,以提高代码的效率和安全性。
2024-07-10 22:46:37
302
原创 AI文本转语音,再也不用担心视频配音了.
背景我想要将文本,转为语音,然后配上图片,这样就可以很快生成一个视频.可以说是配音吧,我还是比较喜欢通过代码来自动化.所以今天就来实现一下,同时做一下分享和记录.目标通过python代码,自动将文本转为配音.平台我选择了百度平台, 对比腾讯,付费策略比较友好.阿里云应该也有类似的业务,我没去看.大家可以货比三家.百度的宣传页面百度长文本在线合成价目表。
2024-07-06 19:35:56
719
原创 c++: 理解编译器在背后所做的工作-工具篇
理解C++模板以及编译器的优化是深入掌握C++编程的重要部分。有一些其他工具和技术可以帮助你更好地理解编译器在背后所做的工作,特别是优化方面。
2024-06-25 22:58:32
1030
1
原创 CppInsights: 学习C++模版的神器
CppInsights是一个开源的C++工具,旨在将高级C++代码转换为其等效的低级代码表示。它能够展示编译器在处理C++代码时的许多隐式操作,使得开发者能够更直观地理解代码的实际执行过程。该工具由Andreas Fertig开发,其目标是揭示C++代码的内在机制,帮助开发者深入理解语言的特性。
2024-06-25 22:52:38
1428
原创 理解静态单赋值SSA(Static Single Assignment)
静态单赋值形式(SSA)通过确保每个变量只被赋值一次,极大地简化了编译器的分析和优化工作。通过引入 Φ 函数解决控制流合并点的变量选择问题,SSA 提供了一种强大而灵活的中间表示,使编译器能够更高效地生成优化代码。
2024-06-24 22:26:11
1869
原创 c++处理string类型的工具和常用方法总结
这些头文件和示例展示了如何在C++中处理字符串和字符的不同方法。根据具体需求选择合适的头文件和函数可以大大提高程序的效率和可读性。通过使用这些正则表达式工具,可以在C++中方便地进行字符串模式匹配和替换操作。头文件来进行正则表达式匹配和处理字符串。在C++中,可以使用标准库中的。
2024-06-08 11:00:22
604
原创 C++格式化输出开源库fmt入手教程
格式API在精神上与C print函数家族相似,但比通用标准库实现更安全、更简单且速度快好几倍。格式字符串语法类似于Python中str.form使用的语法。如果不是c++ 20,还想要简化字符串的格式化,和输入输出流的简化。那就可以使用我们今天要介绍的开源项目,fmt,
2024-04-13 00:23:38
1573
原创 c++命令行解析开源库cxxopts上手教程
具体规则请看代码注释,总体来说还是比较通俗易懂的,不需要特别多的解释。// 1. 导入头文件(只有一个)// 2. 创建一个Options实例// 3. 写入可解析的参数("d,debug", "Enable debugging") // 默认是bool类型("i,integer", "Int param", cxxopts::value<int>()) // 该参数是int类型// vector 传递参数有 2 种方式// --value_list=1,2,3,4 一次性传递,确保没有空格。
2024-04-12 23:53:06
1772
2
原创 Python Flask教程
启动代码热加载新建一个文件,名为: , 在文件内开启debug模式。(需要下载doenv)库1.1 url传参规则参数规则:(default) accepts any text without a slashaccepts positive integersaccepts positive floating point valueslike but also accepts slashesaccepts UUID strings1.2
2024-01-14 01:29:16
1772
原创 zsh插件之gitignore安装使用教程
文件手动添加插件,或使用 Oh My Zsh 提供的命令。,这是一个流行的 zsh 配置框架。这样你就可以根据你的项目需要选择合适的语言/框架,然后生成对应的。插件是 Oh My Zsh 的一个插件,你可以通过编辑。文件,帮助你更有效地管理项目中的不需要跟踪的文件和目录。例如,如果你要创建一个 Python 项目的。文件,包含常见的 Python 文件和目录排除规则。这将在当前目录生成一个适用于 Python 项目的。提供了一个便捷的方式来管理。一旦安装了插件,你可以使用。首先,确保你已经安装了。
2024-01-14 01:17:08
803
原创 使用 CMake 和 Ninja 构建 C/C++ 项目的教程
CMake 是一个跨平台的开源构建工具,它简化了项目的构建过程。而 Ninja 是一个快速、轻量级的构建系统,与 CMake 配合使用可以提高项目的构建效率。通过按照以上步骤,你就成功使用 CMake 和 Ninja 构建了你的 C/C++ 项目。在 Windows 上,你可以使用 CMake 官网 下载并安装 CMake,而 Ninja 则可以通过 GitHub Release 下载预编译的二进制文件。在你的项目根目录外,创建一个用于构建的目录。在你的项目根目录下创建一个。这将编译并构建你的项目。
2024-01-07 12:14:06
8772
原创 C++执行系统命令的三种方式
函数的返回值为命令的退出状态。如果命令执行成功,则返回值为 0。如果命令执行失败,则返回值为非 0 值。函数会创建一个管道,用于将命令的输入和输出与 C++ 程序进行连接。函数提供了更大的灵活性,可以控制命令的输入和输出。函数提供了最强大的控制,可以直接控制子进程的执行。函数是最简单的方法,但它不是很灵活。函数从管道中读取命令的输出,使用。命令,并将命令的输出写入到文件。函数会在子进程中执行指定的程序。参数指定管道的模式,可以为。函数向管道中写入命令的输入。参数指定要执行的命令。参数指定要执行的命令。
2023-12-15 21:11:54
3325
原创 介绍交换空间概念以及如何设置交换空间
交换空间(Swap space)是计算机内存的一种补充,位于硬盘驱动器上。当物理内存不足时,系统会将不活跃的页面移到交换空间中。交换空间的大小应至少为物理内存的两倍大。如果您的系统只有 4 GB 的内存,则交换空间应至少为 8 GB。交换空间应至少为物理内存的两倍大。如果您的系统只有 4 GB 的内存,则交换空间应至少为 8 GB。交换空间可以是专用的交换分区(推荐的方法),交换文件,或两者的组合。专用的交换分区是专门用于交换空间的硬盘分区。如果交换空间已成功添加,您将看到。的 10 GB 文件。
2023-11-19 13:24:51
755
原创 zsh和ohmyzsh安装指南+插件推荐
这将安装 Oh My Zsh 和所有默认插件。, 可以找到所有目前主流程序猿使用的插件列表。所有的插件都应该下载到。
2023-11-19 00:25:50
3856
基于颜色保留的retness算法.zip
2020-03-29
c语言打印金字塔源码,可直接运行。
2018-08-04
java编译成功,运行找不到或无法加载主类 。
2019-02-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人