【问题标题】:cpu requirements for `x86intrin.h`?`x86intrin.h` 的 CPU 要求?
【发布时间】:2018-03-12 18:44:14
【问题描述】:

您好,我认为运行 x86intrin.h 的最低 CPU 要求是英特尔第三代处理器。

但是当我运行这段代码时

_rdseed64_step(&temp2);

我收到以下错误

error: inlining failed in call to always_inline 'int _rdseed64_step(long long unsigned int*)': target specific option mismatch

_rdseed64_step (unsigned long long *__p)

我已将标志设置为march=native,它仅在我使用台式机时发生,当我在运行第 6 代处理器的笔记本电脑上运行时,它工作正常。

【问题讨论】:

  • 请提供minimal reproducible example 并记下您的编译器及其版本。
  • “英特尔第三代处理器”通常被认为是英特尔386 系列(如果不算186,在这种情况下第三代是286)。你不是说第三代Core架构(即Ivy Bridge)吗?

标签: c++ random intel intrinsics


【解决方案1】:

来自Intel knowledge base

对应的第 4 代 Intel® Core™ 指令是 RDSEED。

所以看起来你不能在第三代处理器上使用它。

【讨论】:

  • 第三代处理器的 RDSEED 是什么?
  • @albusSimba 我想没有对等的。您可能希望在调用它之前执行功能检查。见Intel® Digital Random Number Generator (DRNG) Software Implementation Guide
  • @albusSimba:有rdrand(IvyBridge 和更新版本,我认为还有一些 AMD),但它没有提供那么强的保证。使用多个rdrand 结果可能不适合播种 PRNG 的状态,至少在理论上如果它需要加密安全。不过,只有 64 位或更少状态的 PRNG 可以由 rdrand 安全地播种。
猜你喜欢
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 2019-10-24
  • 1970-01-01
  • 2012-10-04
  • 2021-09-03
相关资源
最近更新 更多