65,108
社区成员
发帖
与我相关
我的任务
分享
// 如下,请问,fa更快还是fb更快
void fa(float* a_, float* b_)
{
float a = *a_; //
float b = *b_; // 放这
for (size_t i = 0; i < 1000000; i++)
a *= a;
*a_ = a;
for (size_t i = 0; i < 1000000; i++)
b *= b;
*b_ = b;
}
void fb(float* a_, float* b_)
{
float a = *a_; //
for (size_t i = 0; i < 1000000; i++)
a *= a;
*a_ = a;
float b = *b_; // 放这
for (size_t i = 0; i < 1000000; i++)
b *= b;
*b_ = b;
}
CISC和RISC目前都支持,具体和还要和数据是否读到CACHE有关系(受多种因素的影响),有的时候CPU会等待数据就绪的(读到CACHE),如果由于某种原因数据没有及时读到CACHE,那么这种并行就不是真的并行了。
CUDA
编译器不同,优化也不同,编译开关不同,编译结果不同;
CPU的型号不同,具体操作的时序可能不同;
内存的参数不同,具体的操作时序一定不同。
我面前米饭里的这粒米,当初在水稻穗子的顶部还是底部呢?
我要是有钱了,是不是只吃每个稻穗最顶上的那粒米呢?
我真的很有钱,可是他们说我面前每一粒米都来自一个稻穗的最顶上这句话是不是在骗我呢?
为什么不
for (size_t i = 0; i < 1000000; i++)
a *= a, b *= b;