2つのint行列AとBを持ち、1000行と10K列を超えるので、高速化(4倍以上)を得るためにfloat行列に変換する必要があることがよくあります。浮動小数点数の乗算で浮動小数点を浮動小数点数に比べて高速に行うのはなぜですか?
私はなぜこれが当てはまるのだろうか?私は浮動行列の乗算を続けるAVXなど、多くの最適化とベクトル化があることを認識しています。しかし、整数のためのAVX2のような命令があります(私が間違っていない場合)。そして、整数のためにSSEとAVXを使用することはできませんか?
NumpyやEigenなどの行列代数ライブラリの下にヒューリスティックが存在しないため、これをキャプチャしてfloatのように高速に整数行列の乗算を行うのはなぜですか?受け入れ答えについて
: @のサシャの答えは非常に有益と関連しているが、@のchatzの答えは、int型の乗算によってintは関係なく、BLAS、整数行列演算が存在するかどうかの遅い理由は実際の理由です。
問題をより具体的にするのに役立ちますが、フロートのためにそれを必要とする人が増えているため、ソフトウェアとハードウェアの両方でフロート用に最適化する努力が増えました。 –
この質問には、パフォーマンスの違いを示すための具体的なコード例が必要です([mcve]を参照)。特に、コードに[C++]タグと[numpy]タグが付いているので、あなたが何を参照しているかは完全には不明です。 – Zulan