首页 > 其他分享 >.Net7发现System.Numerics.Vector矢量化的一个bug,Issues给了dotnet团队

.Net7发现System.Numerics.Vector矢量化的一个bug,Issues给了dotnet团队

时间:2023-06-18 09:22:24浏览次数:46  
标签:Numerics System 矢量化 ptr Vector IsHardwareAccelerated bug

因为前几天做.Net7的矢量化性能优化,发现了一个bug。在类System.Numerics.Vector里面的成员变量IsHardwareAccelerated。但是实际上不确定这个bug是visual studio 2022的还是System.Numerics.Vector库的,个人认为应该是前者,也就是vs的bug。


Vector.IsHardwareAccelerated返回的是True,但是VS识别成了False,并且当成True的逻辑来实质性。把这个Issuse提交给了dotnet团队,传送门:点击此处。下面的回答,有人确认确实如此。但是为什么会出现如此奇怪的错误呢?
image


首先看下这个bug,然后再分析下
JIT Code

bool bl= Vector.IsHardwareAccelerated;
00007FF997577896 C7 45 28 01 00 00 00 mov         dword ptr [rbp+28h],1  
00007FF99757789D 8B 4D 28             mov         ecx,dword ptr [rbp+28h]  
00007FF9975778A0 0F B6 C9             movzx       ecx,cl  
00007FF9975778A3 89 4D 2C             mov         dword ptr [rbp+2Ch],ecx  

可以看到Vector.IsHardwareAccelerated确实返回1。但是VS里面却是如下图所示:
image
很明显,JIT和VS里的显示是冲突的。


作者:江湖评谈
欢迎关注我,一起学习,一起进步
image

标签:Numerics,System,矢量化,ptr,Vector,IsHardwareAccelerated,bug
From: https://www.cnblogs.com/tangyanzhi1111/p/17481579.html

相关文章

  • centos添加自定义Systemd服务
    #########################https://zhuanlan.zhihu.com/p/415469149          systemctlenable**nable命令相当于在/etc/systemd/system/目录里添加了一个符号链接,指向/usr/lib/systemd/system/里面的**.service开机时,Systemd会执行/etc/systemd/system......
  • How to enable auto restart of a docker container on system reboot ?
    Howtoenableautorestartofadockercontaineronsystemreboot ?https://amalgjose.com/2021/02/12/how-to-enable-auto-restart-of-a-docker-container-on-system-reboot/#:~:text=How%20to%20enable%20auto%20restart%20of%20a%20docker,Ensure%20the%20docker%20co......
  • 通过Systemctl管理自定义linux服务文件
    Systemd默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。systemctlenable命令用于在上面两个目录之间,建立符号链接关系。sudosystemctlenable[example]等同于sudoln-......
  • SystemVerilog for Design Edition 2 Chapter 8
    SystemVerilogforDesignEdition2Chapter8SystemVerilogenablesmodelingatahigherlevelofabstractionthroughtheuseof2-statetypes,enumeratedtypes,anduserdefinedtypes.Thesearecomplementedbynewspecializedalwaysproceduralblocks,alw......
  • systemd-xxx.service服务介绍
                    1 systemd-journald.service(日志服务)                这个日志服务可以协助记录日志文件,包括启动过程中的所有信息。不过,它只能记录本次启动的信息,重启后之前的信息就查询不到了。这样的原因是;这个......
  • linux自动登录|debian12实践|字符终端|自动登录|systemd|getty
    此方法适用于使用systemd启动的文件系统,debian12实践1.编辑此文件/etc/systemd/system/getty.target.wants/[email protected]或者是/etc/systemd/system/[email protected]/autologin.conf(我的Debian12中没有找到这个目录,不知道和版本有关还是和发行版有关)。2.......
  • Differences between SysVinit, Upstart and Systemd
    DifferencesbetweenSysVinit,UpstartandSystemdhttps://www.computernetworkingnotes.com/linux-tutorials/differences-between-sysvinit-upstart-and-systemd.html#:~:text=To%20refer%20to%20the%20initialization%20process%2C%20the%20SysVinit,%27UNIX%20System%2......
  • systemctl强大服务2
         systemd是按照单元(unit)来管理系统的,一共有12种单元的类型,上面讨论涉及到的service也是单元的类型之一:主要的单元有以下的如示:单元说明service启动和守护进程target单元组socket从套接字接收信息启动服务device设备检测以启动服务mount挂载文件系统outmount自动挂载......
  • 解决MySQL8.0报错:Unknown system variable 'validate_password_policy'
    解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'解决MySQL8.0报错:Unknownsystemvariable'validate_password_policy'一、问题描述1.通过yum安装好mysql8.0,通过生成的临时密码登录后操作mysql时会报如下错误:mysql>showdatabases;ERROR1820......
  • SystemVerilog接口练习
           结合《SystemVerilog验证测试平台编写指南》和《FPGA应用开发和仿真》,在gVim里敲代码,学习一下接口的用法。1interfacemembus2#(3parameterLEN=256,DW=84)5(6inputwireclk,7inputwirerst8);9logic[$clog2(......