gpt4 book ai didi

c++ - SIMD 内部函数和指针

转载 作者:太空宇宙 更新时间:2023-11-04 01:10:29 25 4
gpt4 key购买 nike

我读到的关于使用 C/C++ 内部类型实现 SIMD 功能(如 MMX 和 SSE)的所有内容都表明您应该将它们用作不透明类型,而不是直接引用内部结构。

但是,当我查看许多示例时,它们的工作方式是采用(明确对齐的)指向原始数据的指针,并在执行工作之前将它们重新解释为指向内部类型的指针。但是,通过使用指向内部类型的指针,尤其是在将其他数据别名为这些类型时,您是否违反了该规则?

最佳答案

您似乎发现大多数示例都很糟糕。

实际上引用 SSE 类型的“内部结构”是相当安全的(只要它能编译),实际上您可以只是将它们在内存中别名为内存中的“普通”数据类型,很多人这样做是因为它使代码更便于编写和使用。

但这几乎破坏了使用 SIMD 的意义。它阻止了很多优化,这意味着编译器必须不断地存储/加载 SIMD 数据类型,而不是仅仅将它们保存在 SIMD 寄存器中。

可以这样做,但您不应该这样做。正如您所发现的,许多人将“应该”理解为“随意这样做”。

关于c++ - SIMD 内部函数和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com