- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
in my application, speed is very important. so I use intel advisor on my application, then I find that there are some type conversions.
I think it is weird, because there are some float type but I always use double type. therefore I have a test, then find that _mm512d load/store intrinsics are changed vmovup’s’z. I think, it have to changed vmovup’d’z.
why it is happened? and is type conversion important to speed? I use very many load/store instruction.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
The VMOVUP* don't perform any type conversions -- they just move the bits between memory and registers.
I think that the compiler prefers to use VMOVUPS because the "float" data type is the default for the instruction. Changing the type requires additional prefix bytes, which can slow down instruction decode and decrease the effectiveness of the L1 Instruction Cache, without providing any performance benefits.
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
The VMOVUP* don't perform any type conversions -- they just move the bits between memory and registers.
I think that the compiler prefers to use VMOVUPS because the "float" data type is the default for the instruction. Changing the type requires additional prefix bytes, which can slow down instruction decode and decrease the effectiveness of the L1 Instruction Cache, without providing any performance benefits.
