-2

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

这是最快的方法吗。我正在开发带有 SSE 指令的 x86 处理器。我可以利用他们阅读文件的优势吗?

谢谢

4

3 回答 3

5

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

将文件放入内存后,如果编译器发出 SSE 指令,则对矩阵执行的操作将受益。

于 2012-05-20T10:29:07.227 回答
2

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

于 2012-05-20T13:01:40.690 回答
1

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

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

于 2012-05-20T10:28:35.103 回答