【发布时间】:2021-03-06 13:24:21
【问题描述】:
SIMD 指令是否仅用于向量数值计算?或者它是否适合于一类字符串操作任务,例如将数据行写入文本文件,其中行的顺序无关紧要?如果是这样,我应该从哪些 API 或库开始?
【问题讨论】:
-
简短回答:I/O 比 CPU 慢很多数量级,SIMD 无济于事;在没有 SIMD 帮助的情况下,CPU 的运行速度已经比 I/O 层快得多。
-
@ShadowRanger:当您读取磁盘缓存中的热文本文件时,情况并非如此。然后它基本上是带有一些系统调用或页面错误开销的内存带宽。对于一些标量逐个字节的循环,每个字节有几个周期,4GHz CPU 只能达到 2GB/s。这仅比现代消费级 SSD 快约 2 倍,而一些一次字节的代码可能比这慢得多。服务器 I/O 可以更快。当然,内存带宽要高得多。 I/O 通常很慢,但并不总是数量级。现代系统并不总是靠一根稻草呼吸。
标签: c++ c string optimization simd