07 FPGA 助力Python加速计算 陈志勇
工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 Ø 大家对硬件加速的最初印象 Ø 不仅是嵌入式系统 软件仿真和硬件仿真 7 Ø 近期很热门的话题 Ø 目的:提高算法计算效率,缩短算法开发时间和验证时间 Ø 加速框架: Ø 分布式计算:多节点计算 Ø 并行计算:多处理器、多线程计算 Ø 分布式计算引擎:Spark Ø 并行计算语言(函数式编程):Scala Ø 加速方法: Ø 算法的优化 Ø 算法的并行化 Ø CPU: 多核 CPU U的串 行处理架构 Ø 存储器架构:芯片内有大容量存储器,不需要和外 面的 DDR 做反复读写。 Ø DSP 硬核:硬核乘加器,一个时钟实现。 Ø 数据的处理以FPGA 时钟 cycle 来计算的 Ø 100M 时钟,10ns Ø D 触发器:数据可以准确和时钟同步。一个 时钟 cycle 可以实现多个数据流的同步:数 据打齐 Ø 纯并行处理架构 / 流水线处理架构 FPGA 如何实现算法加速0 码力 | 34 页 | 6.89 MB | 1 年前32_FPGA助力Python加速计算_陈志勇
工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? Ø 传统的计算平台:基于通用处理器的架构,Intel x86 Ø 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 Ø 嵌入式计算: Ø 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 Ø 大家对硬件加速的最初印象 Ø 不仅是嵌入式系统 软件仿真和硬件仿真 7 Ø 近期很热门的话题 Ø 目的:提高算法计算效率,缩短算法开发时间和验证时间 Ø 加速框架: Ø 分布式计算:多节点计算 Ø 并行计算:多处理器、多线程计算 Ø 分布式计算引擎:Spark Ø 并行计算语言(函数式编程):Scala Ø 加速方法: Ø 算法的优化 Ø 算法的并行化 Ø CPU: 多核 CPU U的串 行处理架构 Ø 存储器架构:芯片内有大容量存储器,不需要和外 面的 DDR 做反复读写。 Ø DSP 硬核:硬核乘加器,一个时钟实现。 Ø 数据的处理以FPGA 时钟 cycle 来计算的 Ø 100M 时钟,10ns Ø D 触发器:数据可以准确和时钟同步。一个 时钟 cycle 可以实现多个数据流的同步:数 据打齐 Ø 纯并行处理架构 / 流水线处理架构 FPGA 如何实现算法加速0 码力 | 33 页 | 8.99 MB | 1 年前3FPGA助力Python加速计算 陈志勇
工程师关心的问题 3 Python 工程师开发嵌入式产品的时候哪些地方可能会遇到性能瓶颈? ➢ 传统的计算平台:基于通用处理器的架构,Intel x86 ➢ 新的嵌入式计算平台:MCU,DSP,FPGA,GPU、ASSP等 ➢ 嵌入式计算: ➢ 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠 性、成本、体积、功耗有严格要求的专用计算机系统,它一般由嵌入式微处理器、外围硬件设备、 ➢ 大家对硬件加速的最初印象 ➢ 不仅是嵌入式系统 软件仿真和硬件仿真 7 ➢ 近期很热门的话题 ➢ 目的:提高算法计算效率,缩短算法开发时间和验证时间 ➢ 加速框架: ➢ 分布式计算:多节点计算 ➢ 并行计算:多处理器、多线程计算 ➢ 分布式计算引擎:Spark ➢ 并行计算语言(函数式编程):Scala ➢ 加速方法: ➢ 算法的优化 ➢ 算法的并行化 ➢ CPU: 多核 CPU U的串 行处理架构 ➢ 存储器架构:芯片内有大容量存储器,不需要和外 面的 DDR 做反复读写。 ➢ DSP 硬核:硬核乘加器,一个时钟实现。 ➢ 数据的处理以FPGA 时钟 cycle 来计算的 ➢ 100M 时钟,10ns ➢ D 触发器:数据可以准确和时钟同步。一个 时钟 cycle 可以实现多个数据流的同步:数 据打齐 ➢ 纯并行处理架构 / 流水线处理架构 FPGA 如何实现算法加速0 码力 | 34 页 | 4.19 MB | 1 年前3Python 标准库参考指南 3.10.15
--- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.7.1 平均值以及对中心位置的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.7.2 对分散程度的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 16.7.3 配置字典架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 16.7.4 配置文件格式 ——Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1413 25.1.1 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14140 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.10.15
statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 9.7.1 平均值以及对中心位置的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.7.2 对分散程度的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 16.7.3 配置字典架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 16.7.4 配置文件格式 . tkinter ——Tcl/Tk 的 Python 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 25.1.1 架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 xiv0 码力 | 2072 页 | 10.39 MB | 9 月前3Python 标准库参考指南 3.8.20
exception MemoryError 当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。关联的值是一个字符串, 指明是哪种(内部)操作耗尽了内存。请注意由于底层的内存管理架构(C 的 malloc() 函数),解释 器也许并不总是能够从这种情况下完全恢复;但它毕竟可以引发一个异常,这样就能打印出栈回溯信 息,以便找出导致问题的失控程序。 exception NameError 有一些预定义编解码器是 Python 专属的,因此它们在 Python 之外没有意义。这些编解码器按其所预期的输 入和输出类型在下表中列出(请注意虽然文本编码是编解码器最常见的使用场景,但下层的编解码器架构支 持任意数据转换而不仅是文本编码)。对于非对称编解码器,该列描述的含义是编码方向。 文字编码 以下编解码器提供了str 到bytes 的编码和bytes-like object 到str 的解码,类似于 模块和 PEP 3119。 8.5 heapq --- 堆队列算法 源码:Lib/heapq.py 这个模块提供了堆队列算法的实现,也称为优先队列算法。 堆是一个二叉树,它的每个父节点的值都只会小于或等于所有孩子节点(的值)。它使用了数组来实现:从 零开始计数,对于所有的 k ,都有 heap[k] <= heap[2*k+1] 和 heap[k] <= heap[2*k+2]。为了便 于比较,0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.8.20
exception MemoryError 当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。关联的值是一个字符 串,指明是哪种(内部)操作耗尽了内存。请注意由于底层的内存管理架构(C 的 malloc() 函 数),解释器也许并不总是能够从这种情况下完全恢复;但它毕竟可以引发一个异常,这样就能打 印出栈回溯信息,以便找出导致问题的失控程序。 exception NameError 有一些预定义编解码器是 Python 专属的,因此它们在 Python 之外没有意义。这些编解码器按其所预期的 输入和输出类型在下表中列出(请注意虽然文本编码是编解码器最常见的使用场景,但下层的编解码器 架构支持任意数据转换而不仅是文本编码)。对于非对称编解码器,该列描述的含义是编码方向。 文字编码 以下编解码器提供了str 到bytes 的编码和bytes-like object 到str 的解码,类似于 模块和 PEP 3119。 8.5 heapq --- 堆队列算法 源码:Lib/heapq.py 这个模块提供了堆队列算法的实现,也称为优先队列算法。 堆是一个二叉树,它的每个父节点的值都只会小于或等于所有孩子节点(的值)。它使用了数组来实现: 从零开始计数,对于所有的 k ,都有 heap[k] <= heap[2*k+1] 和 heap[k] <= heap[2*k+2]。为 了便于比较,0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
exception MemoryError 当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。关联的值是一个字符 串,指明是哪种(内部)操作耗尽了内存。请注意由于底层的内存管理架构(C 的 malloc() 函 数),解释器也许并不总是能够从这种情况下完全恢复;但它毕竟可以引发一个异常,这样就能打 印出栈回溯信息,以便找出导致问题的失控程序。 exception NameError 有一些预定义编解码器是 Python 专属的,因此它们在 Python 之外没有意义。这些编解码器按其所预期的 输入和输出类型在下表中列出(请注意虽然文本编码是编解码器最常见的使用场景,但下层的编解码器 架构支持任意数据转换而不仅是文本编码)。对于非对称编解码器,该列描述的含义是编码方向。 文字编码 以下编解码器提供了str 到bytes 的编码和bytes-like object 到str 的解码,类似于 模块和 PEP 3119。 8.5 heapq --- 堆队列算法 源码:Lib/heapq.py 这个模块提供了堆队列算法的实现,也称为优先队列算法。 堆是一个二叉树,它的每个父节点的值都只会小于或等于所有孩子节点(的值)。它使用了数组来实现: 从零开始计数,对于所有的 k ,都有 heap[k] <= heap[2*k+1] 和 heap[k] <= heap[2*k+2]。为 了便于比较,0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.9.20
--- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.7.1 平均值以及对中心位置的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.7.2 对分散程度的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691 16.7.3 配置字典架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691 16.7.4 配置文件格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1785 32.2.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1788 320 码力 | 2146 页 | 10.17 MB | 9 月前3Python 标准库参考指南 3.9.20
statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 9.7.1 平均值以及对中心位置的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.7.2 对分散程度的评估 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 16.7.3 配置字典架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 16.7.4 配置文件格式 . 抽象文法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1671 32.2.2 节点类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673 32.2.30 码力 | 2015 页 | 10.12 MB | 9 月前3
共 119 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12