- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我找不到有关agner.org指令的延迟或吞吐量的有关RDRAND的任何信息。但是,此处理器存在,因此信息必须在那里。
编辑:实际上,最新的优化手册中提到了此说明。在Ivy Bridge上记录为小于200个周期,并且总带宽至少为500MB / s。但是,由于等待时间和吞吐量是可变的,因此对该指令进行一些更深入的统计将非常有用。
最佳答案
我写了librdrand。使用RdRand指令填充随机数是非常基本的例程集。
我们在IDF上展示的性能数据来自于我编写的测试软件,该软件在Linux中使用pthreads生成了多个线程。每个线程使用RdRand拉取随机数来填充内存缓冲区。该程序测量平均速度,并且可以在更改线程数的同时进行迭代。
由于从每个核心到共享DRNG的往返通信延迟要长于在DRNG上生成随机数所需的时间,因此平均性能显然会随着添加线程的增加而增加,直到达到最大吞吐量为止。 IVB上DRNG的物理最大吞吐量为800MBytes / s。具有8个线程的4核IVB可以管理780Mbytes / s的数量级。使用更少的线程和核心,可以实现更少的数量。 500MB / s的数字有些保守,但是当您要提出诚实的性能要求时,必须做到这一点。
由于DRNG以固定频率(800MHz)运行,而核心频率可能会发生变化,因此每个RdRand的核心时钟周期数会有所不同,这取决于核心频率和同时访问DRNG的其他核心数。 IDF演示中给出的曲线是期望值的真实表示。总体性能受核心时钟频率影响很小,但影响不大。线程数是最主要的。
在测量RdRand性能以实际“使用” RdRand结果时,应格外小心。如果不这样做,即您这样做了。RdRandR6,RdRand R6,....,RdRand R6重复了很多次,性能被人为地提高了。由于在覆盖数据之前不使用数据,因此CPU管道在发出下一条指令之前不会等待数据从DRNG返回。我们编写的测试将结果数据写入内存,该数据将保存在片上缓存中,因此管道会停顿以等待数据。这就是为什么使用RdRand比使用其他类型的代码更有效的原因。
IDF幻灯片中提供了特定平台,时钟速度,Linux版本和GCC版本的详细信息。我不记得那些数字。有较慢的可用芯片和较快的可用芯片。我们给出的每条指令<200个周期的数字基于每条指令大约150个核心周期的测量结果。
该芯片现已上市,因此精通rdtsc的任何人都可以进行相同的测试。
关于assembly - Ivy Bridge上的RDRAND指令的延迟和吞吐量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484164/
我有一个主 Ivy 项目,其他人通过 svn:externals 属性将其包含在他们的项目中。该项目包含 Ivy jar,连接到我们项目的默认 ivysettings.xml 文件,以及一些允许我标准
我正在尝试将文件库添加到 Ivy ,但它不起作用。 以下是使用的文件: Ivy .xml ivysettings.xml 构建文件
我以为我不需要问这个,但我没有任何进展。 这个问题的解决方案: How are maven scopes mapped to ivy configurations by ivy实际上解决了问题,但在其
考虑如下 ivy.xml: 当我运行 Ivy 时,它会获取 EHCache 的所有依赖项
我来自 Maven 背景。我正在从事的项目不是基于 Java 的。但是,需要使用独立的 Ivy 进行依赖管理。存储库管理器是 Nexus。 该项目产生了几个 zip 工件,需要通过独立的 Ivy 将它
似乎没有 ivy:unpublish 任务(例如,参见 here)。 所以,我认为应该在文件系统级别手动或通过删除 ~/.ivy2/local 子文件夹的 Ant 任务执行取消发布? (当目标是从本地
有没有人有使用 Ivy 的具体例子或 与 delivertarget 的任务属性做递归交付?官方文档相当......稀疏。是否有关于何时使用它而不是正常的 Ant“父”构建机制(例如, )来进行递归
我正在使用 ivy,我工作的公司有一些有趣的小 ivy 和 ant 教程。 当在依赖项部分使用时,每个教程都有助于完全绕过箭头在 ivy 构建 xml 文件中的作用。 因此,鉴于此设置:
有关 Apache Ivy 的三个简单问题: (1) 在我们的项目中,我们使用了 100 多个“通用”JAR(log4j、junit、commons-cli 等)。我们是否必须为所有这些文件编写 iv
我正在使用 ivy,我工作的公司有一些有趣的小 ivy 和 ant 教程。 当在依赖项部分使用时,每个教程都有助于完全绕过箭头在 ivy 构建 xml 文件中的作用。 因此,鉴于此设置:
是否有人测试过如何在启用安全性的 Archiva 中部署工件。我有以下配置 我的ivysettings.xml 我的build.xml
解析了我的 ivy.xml 文件后,我想创建一个新的 resolved-ivy.xml 文件,其中包含所有传递依赖项 在解析中找到。 这有可能吗? 这与交付不同,交付(我相信)只从您的 ivy.xml
我有一个本地 Artifactory 存储库,其中有两个用于 commons-logging 的 jar 。 : 一个给 version 1.0.4一个用于 version 1.1.1 .我正在尝试使
我正在使用 ~/.sbt/repositories文件告诉 sbt 0.13.5 要从哪些存储库中检索。该文件仅包含 local和 file://具有与标准 sbt 非常相似的自定义布局的存储库,具有
在 Gradle 中,我们配置了一个本地 Maven 存储库,并将工件上传到那里以用于我在其他项目的本地构建中使用。 我更喜欢使用 Ivy 存储库(因此我可以为工件名称使用自定义模式)。 您如何配置
更新快照依赖项时,我无法让 Ivy 更新缓存。解析器(具有以下设置: 一个示例 Artifactory 文件名(在 Artifactory 中)是: my-jar-1.999-SNAPSHOT.ja
我在设置 sbt 时遇到了问题。我下载了一个“zip”并展开它,但是当我运行 sbt 命令时,发生了错误。 module not found: org.scala-sbt#sbt;0.13.8
Maven 存储库,例如 Maven Repository提供最广泛的依赖管理项目。 Ivy 提供了访问 maven 存储库并从那里下载 Artifact 的可能性。这些存储库中只有 pom 文件,没
有没有办法在我调用 ivy:retrieve 时选择使用哪个 ivy.xml 文件? 寻找 at the documentation看来我可以使用 settingsRef 属性来选择要使用的 IVY
这是我的 ivy.xml 的示例: 使用 ivy 1.0,我可以下载这两个工件 当我将版本升级到 ivy-2.0.0 时,仅下载其中一个工件。 Ivy 设置中是否有我必须指定的内容
我是一名优秀的程序员,十分优秀!