热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在不支持硬件的情况下测试AVX-512指令?

如何解决《如何在不支持硬件的情况下测试AVX-512指令?》经验,为你挑选了1个好方法。

我正在尝试学习x86-64新的AVX-512指令,但是我的计算机均不支持它们。我试着用各种反汇编(从Visual Studio网上的:1,2)看看具体操作码的编码指令,但我发现有些矛盾的结果。另外,运行一些指令并查看其实际输出会很好。

所以我想知道是否有一个在线服务可以编译小的(x86-64)汇编代码并在特定处理器上运行或逐步执行?(说,英特尔的Sandy BridgeCannon Lake等等)



1> Peter Cordes..:

使用英特尔®软件开发仿真器(又名SDE)在支持未来指令集的仿真CPU上运行可执行文件。它是免费软件(不是开放源代码,而是免费下载),并且可用于Linux,Windows和OSX。

https://software.intel.com/zh-cn/articles/debugging-applications-with-intel-sde提供了有关如何在Windows或Linux上进行调试的分步说明:SDE可以用作GDB远程服务器,因此您可以运行sde -debug -- ./your-program,然后在另一个终端中运行gdb ./your-program并用于target remote :portnumber连接到SDE流程,从而可以设置断点和单步执行。


如果QEMU添加了对模拟AVX512的支持,则您也许可以对QEMU做同样的事情。QEMU也可以充当GDB远程服务器。

QEMU绝对具有可配置的指令集,例如,您可以告诉它使用AVX而不是AVX2(如Sandybridge)来模拟x86。SDM可能做同样的事情。

如果要验证您的CPUID检查没有假设任何暗示任何其他无法保证的内容,您甚至可以告诉它模拟在真实硬件上找不到的东西,例如AVX2,但不能模拟BMI1 / 2。


请记住,它们对于性能测试基本上是无用的,仅用于矢量化的正确性。 IACA可能对了解SKX的性能很有用,但是它远非完美,并且根本没有建模内存瓶颈。(仅在某些详细级别上使用实际的管道。)


推荐阅读
  • Linux环境下MySQL的安装与配置
    本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 我创建了一个python脚本,该脚本正在从文件中读取数据并从中提取所需的数据,问题 ... [详细]
  • 本文介绍了FTP(文件传输协议)的基础知识,包括其定义、如何通过TCP建立控制和数据连接,以及主动模式与被动模式的区别。FTP作为一种重要的文件传输协议,在互联网数据交换中扮演着关键角色。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文详细介绍了在 Red Hat Linux 系统上安装 GCC 4.4.2 的步骤,包括必要的依赖库的安装及常见问题的解决方法。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • Hibernate入门指南:单表数据库操作详解
    本文介绍了Hibernate作为全面的ORM框架的基础知识,并详细讲解了在MyEclipse环境中配置Hibernate以及进行基本的数据库单表操作的方法,包括增删改查等常见操作。 ... [详细]
  • 在使用Visual Studio构建项目时遇到了IntelliSense错误,具体表现为预期的')'未找到。本文提供了详细的解决方案和可能的原因分析。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
author-avatar
漂浪男孩2010_218
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有