
我这周做了一场关于数据并行性的演讲,讨论了“运行时调度”。这是一个技巧,你会检查CPU在运行时支持什么,然后选择正确的代码路径。
工程师问:“如果处理器推测错误会发生什么?”
事实上,每当存在分支时,编译器可能会尝试评估错误的分支。如果你尝试执行处理器不支持的指令,通常会崩溃。
所以你可能会检查CPU支持什么,结果因为猜测而进入了不支持的代码路径。
那么如果它猜错了,会崩溃吗?
我说我预期不会有崩溃,也不会有副作用。
很高兴地报告,我的回答是正确的。
文明再次得救。
评论
?
参与讨论

我这周做了一场关于数据并行性的演讲,讨论了“运行时调度”。这是一个技巧,你会检查CPU在运行时支持什么,然后选择正确的代码路径。
工程师问:“如果处理器推测错误会发生什么?”
事实上,每当存在分支时,编译器可能会尝试评估错误的分支。如果你尝试执行处理器不支持的指令,通常会崩溃。
所以你可能会检查CPU支持什么,结果因为猜测而进入了不支持的代码路径。
那么如果它猜错了,会崩溃吗?
我说我预期不会有崩溃,也不会有副作用。
很高兴地报告,我的回答是正确的。
文明再次得救。