- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些依赖于 AVX 的代码。
在相同的代码库中,我还使用了 TZCNT
。
后者是 BMI1 的一部分。我知道我可以使用 CPUID 测试这条指令,但我很懒,所以我没有真正实现它。
为了测试支持,我只是执行了一条 AVX 指令。如果返回#UD
未定义指令异常,我知道 CPU 不支持 AVX。
但是 tzcnt
向后兼容(有点)bsf
(或 bsr
- 我总是忘记哪个是哪个),所以不会触发一个异常(exception)。
如果我有 AVX
支持,是否意味着 BMI1
支持?
郑重声明,我现在正在测试的 CPU 上没有 AVX2。
最佳答案
不,AVX 支持并不意味着 BMI1 支持。
详情见下表:
Intel AMD Year
---------------------------------------------------
AVX Sandy Bridge Bulldozer 2011
---------------------------------------------------
BMI1 Haswell Piledriver/Jaguar 2013
---------------------------------------------------
ABM Barcelona 2007
Haswell 2013
---------------------------------------------------
AVX2 Haswell 2013
Carrizo 2015
Ryzen 2017
---------------------------------------------------
BMI2 Haswell 2013
Excavator 2015
Ryzen 2017
大多数处理器都支持两者,但 AVX 比 BMI1 早两年。
除此之外,tzcnt
和 bsf
在标志方面具有不同的语义。
如果你想强制一个#UD
异常,你可以使用andn
.
如果要使用CPUID:
BMI1 -> CPUID.(EAX=07H, ECX=0H):EBX.BMI1[bit 3]
(ANDN, BEXTR, BLSI, BLSMSK, BLSR, TZCNT)
BMI2 -> CPUID.(EAX=07H, ECX=0H):EBX.BMI2[bit 8]
(BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX)
LZCNT -> CPUID.(EAX=80000001H) ECX.LZCNT[bit 5]
POPCNT -> CPUID.(EAX=01H) :ECX.POPCNT [Bit 23]
请注意,即使 CPUID 指示(英特尔)处理器不支持 popcnt
,它也经常支持。
关于assembly - AVX 支持是否意味着 BMI1 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827477/
大家好, 我目前正在为我的元素编写 BMI 计算器。计算器已设置为以磅/英尺为单位,但我想添加一个选项,可以在公斤/米或磅/英尺之间进行选择。 我已经为其创建了 html 代码,只需要其中的 Java
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我想问一下,当循环开始并再次循环时,字符串变量名称会增加1,我该怎么做。这个程序应该问你要写多少个病人。如果你为前任写信。 10,那么循环将进行10次,它会询问我想要的所有信息,然后将它们添加到我已经
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我刚刚完成了一个计算体重指数表的程序。但是,我无法按预期打印表格。我尝试更改 for 循环位置,但它给了我相同的结果。如果你执行代码你就会明白我的意思。 实际输出: 预期输出: 我的代码: #incl
对于这个实验,我不允许编辑 main 函数,所有事情都必须在 main 下面的函数中完成。我在这里似乎找不到我的问题。我认为这与调用calculateBMI函数有关。 #include F
我想计算BMI值。我有一个添加 Controller ,其中有两个用于体重和高度的文本字段。然后我有一个结果标签和一个计算 BMI 值的按钮。 我的代码是: @IBOutlet var fieldAl
我的 JS 代码 有问题。我制作了两个具有相同值的对象。我想决定哪个人的 BMI 更高。我做了 if 语句,但我认为控制台应该记录“The same BMI”。这表明 Mike 的 BMI 更高。 v
在没有让 BMR 计算器按预期工作后,我决定使用一些更简单的东西,并尝试制作一个 BMI 计算器(因为它不需要不同的性别方法),或多或少从 BMR 计算器重写。问题是我对我应该如何使用数学并没有真正的
在我最近的项目中,简而言之,我正在计算 BMI。 我正在为体重和高度( double 类型)使用一维数组 为了计算 BMI,我使用了一个以方程作为返回值的函数。 问题是结果远远超出了 BMI 值(例如
第一个问题在这里。我必须使用之前计算 BMI 的作业,并将其重新格式化以接受命令行参数作为高度和体重的输入。 “您的程序应通过 main(String[] args) 获取体重和高度,即,当您运行程序
# This program calculates a person's BMI after # user inputs their height and weight, it then conver
我正在尝试计算表中学生的 BMI,四舍五入到三位数: +-------+--------+--------+ | fname | weight | height | +-------+--------
所以我有以下表格来计算用户的 BMI 并根据结果将用户重定向到特定页面: HTML Your Weight(kg): Your Height(cm): Your BMI
澄清 在研究了您的答案并阅读了您对此问题的解释后,我要补充以下内容。 我需要生成整个 BMI 历史记录,而不是单个值。 两个表中的每个值都需要与另一个表中的相关值配对(如果可能)。 简单问题 给定 P
我正在开发一个简单的 BMI 应用程序,但我不知道当我启动应用程序时发生了什么,它崩溃了。 文件名:MainActivity.java package com.achkars.myownbmi; im
我正在尝试制作一个BMI计算器,它调用一个单独类的方法来计算bmi,然后在主方法中继续。下面是我的源代码。 import java.util.Scanner; public class testBMI
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
#include #include int main(void) { int userAgeYears = 0; int userAgeDays = 0; int userWe
我在该程序中使用指针和引用时遇到问题。我完全不明白。我对 C 还很陌生,我们只接触了指针,但还没有讨论太多。任何帮助将不胜感激。 编辑:现在它不允许我输入任何内容... 这是我的新代码: #inclu
我是一名优秀的程序员,十分优秀!