-2

ファイルから8kx8kのマトリックスを可能な限り最速の方法で読み取る必要があります。今のところ、私はfstatを使用してファイル全体をメモリに読み込み、ロードされたデータを操作しています。

これは可能な限り最速の方法ですか。私はSSE命令が利用可能なx86プロセッサに取り組んでいます。それらをファイルの読み取りに利用できますか?

ありがとう

4

3 に答える 3

5

SSE 命令は、ファイルの読み取りを高速化しません。これは、ディスク アクセスによって制限されます。

ファイルをメモリに格納したら、コンパイラが SSE 命令を発行すると、マトリックスで実行される操作が有利になります。

于 2012-05-20T10:29:07.227 に答える
2

また、メモリ マップ ファイルの使用を検討し、バッファリングの責任の一部を OS に移すこともできます。

于 2012-05-20T13:01:40.690 に答える
1

処理する前にすべてのデータをメモリに保持する必要がある場合は、既に実行している方法が最善の方法のように見えます。

SSE 操作は、データを処理するために役立つ場合がありますが、データをより速くロードするのには役立ちません。とにかく、コンパイラで利用可能な最大の最適化を有効にしてみてください (たとえば、GCC では -O3 を使用してから -msseX オプションの 1 つを指定できます)。もちろん、それを行うと、バイナリの移植性が低下します。

于 2012-05-20T10:28:35.103 に答える