ios - Swift 中的加速与并行加法
问题描述
在对向量法和法线法进行基准测试时,时间上存在差异。
普通法
let arrayA: [Float] = [1,2,3]
let arrayB: [Float] = [10,20,30]
let arrayResult:[Float] = zip(arrayA,arrayB).map() {$0 + $1}
Time required: 0.0025310516357421875
与加速
let p = double3(1, 2, 3)
let q = double3(10, 20, 30)
print(p + q)
Time required: 0.0009039640426635742
它是如何在内部工作的。新方法的速度提高了 2.79 倍。
解决方案
SIMD 代表“单指令,多数据”。这意味着某些指令可以同时对多组数据进行操作。不同类型的硬件支持不同的 SIMD 指令。在您的情况下,您能够同时执行三个浮点加法运算。
推荐阅读
- android - 如何使用材料设计制作有角度的顶部应用栏?
- javascript - 一个按钮的两个事件
- r - 在 ggplot 中为 r 中一行中的每个唯一值创建图
- flutter - 更新后 LinearGradient 缺少参数颜色
- python - str 没有转换为 float/int,因为它没有像数字一样忽略 '\n' - python
- php - 为什么我会收到错误:缺少 MediaWiki 需要的一个或多个 PHP 必需组件(mbstring)?
- pytorch - 非 MNIST 数字识别 Pytorch
- java - 无法启动 MvvmFX java.io.IOException:加载 FXML 时出错 - 无法从给定的资源路径加载
- microk8s - microk8s 镜像拉断不断
- python - 从两个列表创建唯一的数据框