设为首页 加入收藏

TOP

验证 .NET 4.6 的 SIMD 硬件加速支持的重要性
2017-01-24 08:15:29 】 浏览:2539
Tags:验证 .NET 4.6 SIMD 硬件 加速 支持 重要性

SIMD 的意思是 Single Instruction Multiple Data。顾名思义,一个指令可以处理多个数据。


.NET Framework 4.6 推出的 Nuget 程序包?System.Numerics.Vectors 里面的 Vector`1 类型是有硬件加速功能的。这个硬件加速功能就是指即时编译的时候根据硬件环境选用一些 SIMD 的指令让程序运行更快。


这个硬件加速功能的威力可以用下面的方式得到验证。


用单线程的程序重复 10000000H 个单精度浮点数的加法。加法的每一个输入都是引用类型,输出也必须获取值的引用。


VB?2017 程序:


动态获取当前硬件支持一组算多少个单精度浮点数的加法,然后分组计算。Release x64 编译,优化代码(反编译验证没有优化掉循环),取消整数溢出检查(为了跟 c# 执行时间一样)。


VB


VC++?2017程序:


用循环 0x10000000 次的 for 循环,Release x64 编译,禁止优化(开优化不管循环多少次都是 0 毫秒,肯定是把循环优化掉了)。


C++


执行结果(CPU 是 i5 6400,有 AVX2 指令集)



使用 i7 3632QM (没有 AVX2 但是有 SSE2)



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用 Visual Basic 编写基于 Unit.. 下一篇VB 2015 的 闭包(Closure)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目