FPGA助力Python加速计算 陈志勇
Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月19日,北京 2 ➢ Python 语言:易学易读易用、可扩展性、可移植性等。 ➢ Python 开发工具:库丰富、效率高、调试方便 ➢ Python 的应用: 人工智能、数据分析等 ➢ Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 ➢ 用 Python 如何开发嵌入式产品?如何实现 算法硬件加速? ➢ ➢ 之前基于python开发的工程师很少接触嵌入式环境, 接触硬件 ➢ 本次题目的主要内容 ➢ Python <- tools -> FPGA ➢ 算法硬件加速:用FPGA的逻辑硬件实现算法加速 ➢ 算法如何在FPGA 中实现?如何用”与或非”门电路去写 算法? ➢ 目前哪些 Xilinx FPGA的开发工具支持python 语言? ➢ 目前Xilinx 工具支持python 的主要应用领域 件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 ➢ 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. ➢ 加速计算: ➢ 如何提高计算效率,提高计算性能 ➢ 加速计算框架的考虑 ➢ 加速计算平台的考虑 ➢ FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 ➢ FPGA(Field Programmable Gate Array)是在0 码力 | 34 页 | 4.19 MB | 1 年前307 FPGA 助力Python加速计算 陈志勇
FPGA 助力 Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年10月20日,深圳 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴 等 Ø 用 Python 如何开发嵌入式产品?如何实现 如何开发嵌入式产品?如何实现 算法硬件加速? Ø 之前基于python开发的工程师很少接触嵌入式环境, 接触硬件 Ø 本次题目的主要内容 Ø Python <- tools -> FPGA Ø 算法硬件加速:用FPGA的逻辑硬件实现算法加速 Ø 算法如何在FPGA 中实现?如何用”与或非”门电路去 写算法? Ø 目前哪些 Xilinx FPGA的开发工具支持python 语言? Ø 目前Xilinx 工具支持python 件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在0 码力 | 34 页 | 6.89 MB | 1 年前32_FPGA助力Python加速计算_陈志勇
Python 加速计算 陈志勇 高级技术市场经理 安富利电子科技 2019年9月21日, 上海 2 Ø Python 语言:易学易读易用、可扩展性、可移植性等。 Ø Python 开发工具:库丰富、效率高、调试方便 Ø Python 的应用: 人工智能、数据分析等 Ø Python 的生态环境:软件平台、硬件平台、方案合作伙伴等 Ø 用 Python 如何开发嵌入式产品?如何实现 算法硬件加速? Ø Ø 之前基于python开发的工程师很少接触嵌入式环境, 接触硬件 Ø 本次题目的主要内容 Ø Python <- tools -> FPGA Ø 算法硬件加速:用FPGA的逻辑硬件实现算法加速 Ø 算法如何在FPGA 中实现?如何用”与或非”门电路去写 算法? Ø 目前哪些 Xilinx FPGA的开发工具支持python 语言? Ø 目前Xilinx 工具支持python 的主要应用领域 件设备、 嵌入 式操作系统以及用户的应用程序等四个部分组成。 Ø 嵌入式系统促使计算机的形态和性能更加小型化,多功能,低功耗. Ø 加速计算: Ø 如何提高计算效率,提高计算性能 Ø 加速计算框架的考虑 Ø 加速计算平台的考虑 Ø FPGA 是如何作为加速平台的?在边缘和云端 Python 与嵌入式计算 4 Ø FPGA(Field Programmable Gate Array)是在0 码力 | 33 页 | 8.99 MB | 1 年前33 使用Python加速文件传输和文件复制 Giampaolo Rodola
● Linux + NFS ● server-side copy ● https://bugs.python.org/issue37159 Speedup shutil.copytree() 加速 shutil.copytree() >>> import shutil >>> shutil.copytree('somedir', 'somedir-2') Copy directory tree0 码力 | 78 页 | 654.51 KB | 1 年前3PyConChina2022-上海-Python启动加速探索及实践-严懿宸
Python 启动加速 探索及实践 主讲人: 严懿宸 – 阿里云 严懿宸 曾于 Oracle Labs 参与 GraalVM 开发 毕业后加入阿里云 – 编译器 目前负责 Python / Node.js 的 Runtime 优化 Content • Python 启动速度简析 • PyCDS 设计与实现 • 更多讨论 Python startup time Python startup0 码力 | 21 页 | 3.18 MB | 1 年前34 Python机器学习性能优化
"There ain't no such thing as a free lunch" Ahmdal’s Law • 系统整体的优化,取决于热点部分的占⽐比和该部分的加速程度 No Free Lunch • 定位热点 & 热点加速 • 对于项⽬目开发周期: 1. 先做出效果 2. 确定整体pipeline 3. 再考虑优化 • 对于⼈人⼯工智能项⽬目:迭代周期更更⻓长,更更是如此 解释执⾏行行:序列列化慢(动态特性的tradeoff) Flask Production Server • gunicorn 多进程解决多核利利⽤用率问题 • gevent 协程替代多线程⽹网络模型 • 更更⾼高效的序列列化lib 3 定位性能瓶颈 Profile before Optimizing Python Profilers • time.time() • cProfile worker只会有⼀一条队列列,最⼤大batch size可控 • 多个GPU worker分布式处理理 • todo:补图 batch predict profile • 有了了service-streamer: ⽹网络服务性能 等价与 本地batch predict的性能 • 再次profile:这⾥里里先卖个关⼦子,猜猜哪⼀一步是瓶颈 • Bert Tokenize远⾼高于inference时间 •0 码力 | 38 页 | 2.25 MB | 1 年前3Hello 算法 1.1.0 Python版
逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表,元素之间是一对一的顺序关系。 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中 传输是不同的问题。在文件存储或网络传输中,我们通常会将字符串编码为 UTF‑8 格式,以达到最优的兼容 性和空间效率。 第 3 章 数据结构 hello‑algo.com 62 3.5 小结 1. 重点回顾0 码力 | 364 页 | 18.42 MB | 1 年前3Hello 算法 1.0.0 Python版
逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表,元素之间是一对一的顺序关系。 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中 传输是不同的问题。在文件存储或网络传输中,我们通常会将字符串编码为 UTF‑8 格式,以达到最优的兼容 性和空间效率。 第 3 章 数据结构 hello‑algo.com 62 3.5 小结 1. 重点回顾 表。假如我们想实现字符到 ASCII 码的映射,则可以将字符的 ASCII 码值作为索引,对应的元素存放在数组中的对应位置。 ‧ 机器学习:神经网络中大量使用了向量、矩阵、张量之间的线性代数运算,这些数据都是以数组的形式 构建的。数组是神经网络编程中最常使用的数据结构。 ‧ 数据结构实现:数组可以用于实现栈、队列、哈希表、堆、图等数据结构。例如,图的邻接矩阵表示实 际上是一个二维数组。0 码力 | 362 页 | 17.54 MB | 1 年前3Hello 算法 1.2.0 简体中文 Python 版
逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出“祖先”与“后代”之间的派生关系;图则由节点 和边构成,反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上呈 线性排列;非线性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表,元素之间是一对一的顺序关系。 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中 传输是不同的问题。在文件存储或网络传输中,我们通常会将字符串编码为 UTF‑8 格式,以达到最优的兼容 性和空间效率。 第 3 章 数据结构 www.hello‑algo.com 62 3.5 小结 1.0 码力 | 364 页 | 18.43 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . 847 18 网络和进程间通信 849 18.1 asyncio --- 异步 I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 18.2 socket --- 底层网络接口 . . . . . . . . . . . . UUID 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264 21.21 socketserver --- 用于网络服务器的框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267 21.22 http.server --- HTTP 服务器 3.8.20 148 Chapter 6. 文本处理服务 CHAPTER7 二进制数据服务 本章介绍的模块提供了一些操作二进制数据的基本服务操作。有关二进制数据的其他操作,特别是与文件格 式和网络协议有关的操作,将在相关章节中介绍。 下面描述的一些库文本处理服务 也可以使用 ASCII 兼容的二进制格式(例如re )或所有二进制数据(例 如difflib )。 另外,请参阅 Python0 码力 | 2052 页 | 9.74 MB | 9 月前3
共 99 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10