C++ 提供 SSE 指令,以最快的速度读取文件

Fastest file reading in C++ with SSE instructions available

本文关键字:速度 读取 文件 提供 SSE 指令 C++      更新时间:2023-10-16

我必须以最快的方式从文件中读取8k x 8k矩阵。到目前为止,我正在使用 fstat 并将整个文件读入内存,然后对加载的数据进行操作。

这是最快的方法吗?我正在使用具有SSE指令的x86处理器。我可以利用他们的优势进行文件读取吗?

谢谢

SSE 指令不会加快读取文件的速度。这将受到磁盘访问的限制。

一旦文件在内存中,那么,如果编译器发出 SSE 指令,则对矩阵执行的操作将受益。

您还可以考虑使用内存映射文件并将一些缓冲责任转移到操作系统。

如果您需要在处理之前将所有数据都放在内存中,那么您已经这样做的方式看起来是最好的。

SSE 操作可能会帮助您处理数据,但它们不会帮助您更快地加载数据。无论如何,您可以尝试一下编译器中可用的最大优化(例如,在GCC中,您可以使用-O3,然后指定-msseX选项之一(。当然,这样做会降低二进制文件的可移植性。