Intel VML 添加速度慢

发布于 2024-10-12 07:22:35 字数 533 浏览 2 评论 0原文

我编写了这个小子例程,用于比较简单的向量数学函数,使用循环执行:

f(i) = a(i) + b(i)

或直接执行:

f = a + b

或使用英特尔 MKL VML:

vdAdd(n,a,b,f)

n=50000000 的计时结果为:

VML 0.9 秒 直接0.4 循环 0.4

我不明白,为什么 VML 花费的时间是其他方法的两倍! (循环有时比直接更快)

可以在 http://paste.ideaslabs.com/show/ 下找到子例程L6dVLdAOIf 并通过调用

program test

  use vmltests
  implicit none

  call vmlTest()

end program

I wrote this small subroutine that compares simple vector mathematical functions, performed either with a loop:

f(i) = a(i) + b(i)

or direct:

f = a + b

or using Intel MKL VML:

vdAdd(n,a,b,f)

The timing results for n=50000000 are:

VML 0.9 sec
direct 0.4
loop 0.4

And I dont understand, why VML takes twice as long as the other methods!
(Loop is sometimes faster than direct)

Subroutine can be found under http://paste.ideaslabs.com/show/L6dVLdAOIf
and called via

program test

  use vmltests
  implicit none

  call vmlTest()

end program

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

潜移默化 2024-10-19 07:22:35

您的示例代码存在潜在的二级缓存问题,可以通过阻塞优化来克服它。有关详细信息,请参阅英特尔® 软件网络论坛答案:http://software .intel.com/en-us/forums/showthread.php?t=80041

英特尔® 优化通知:

英特尔® 编译器、相关库
以及相关的开发工具可能
包括或利用选项
针对指令集进行优化
适用于英特尔® 和非英特尔
微处理器(例如 SIMD
指令集),但不优化
对于非英特尔微处理器同样如此。
此外,某些编译器选项
对于英特尔编译器,包括一些
非特定于英特尔的
微架构,保留用于
英特尔微处理器。欲了解详细的
英特尔编译器选项的描述,
包括指令集和
他们特定的微处理器
牵连,请参阅“Intel®
编译器用户和参考指南”
在“编译器选项”下。
库例程是
英特尔® 编译器产品更多
针对英特尔高度优化
微处理器比其他
微处理器。虽然编译器
和英特尔® 编译器中的库
产品为两者提供优化
英特尔和英特尔兼容
微处理器,取决于
您选择的选项、您的代码和
其他因素,你可能会得到
英特尔的额外性能
微处理器。

英特尔® 编译器、相关库
以及相关的开发工具可能
或者可能无法优化到相同程度
对于非英特尔微处理器
并非独有的优化
英特尔微处理器。这些
优化包括英特尔® 流媒体
SIMD 扩展 2(英特尔® SSE2),
英特尔® 流 SIMD 扩展 3
(英特尔® SSE3)和补充
流式 SIMD 扩展 3(英特尔®
SSSE3)指令集及其他
优化。英特尔没有
保证可用性,
任何功能或有效性
微处理器上的优化不是
由英特尔制造。
微处理器相关的优化
本产品的用途
采用英特尔微处理器。

虽然英特尔相信我们的编译器和
图书馆是绝佳的选择
协助获得最好的
英特尔® 和非英特尔的性能
微处理器,英特尔建议
您评估其他编译器并且
库来确定哪个最符合
您的要求。我们希望能赢
通过努力提供您的业务
任何编译器的最佳性能或
图书馆;请告诉我们如果您
发现我们没有

Your sample code have potential L2 cache issue, one can overcome it with blocking optimization. See Intel® Software Networks Forum answer for details: http://software.intel.com/en-us/forums/showthread.php?t=80041

Intel® Optimization Notice:

Intel® compilers, associated libraries
and associated development tools may
include or utilize options that
optimize for instruction sets that are
available in both Intel® and non-Intel
microprocessors (for example SIMD
instruction sets), but do not optimize
equally for non-Intel microprocessors.
In addition, certain compiler options
for Intel compilers, including some
that are not specific to Intel
micro-architecture, are reserved for
Intel microprocessors. For a detailed
description of Intel compiler options,
including the instruction sets and
specific microprocessors they
implicate, please refer to the “Intel®
Compiler User and Reference Guides”
under “Compiler Options." Many
library routines that are part of
Intel® compiler products are more
highly optimized for Intel
microprocessors than for other
microprocessors. While the compilers
and libraries in Intel® compiler
products offer optimizations for both
Intel and Intel-compatible
microprocessors, depending on the
options you select, your code and
other factors, you likely will get
extra performance on Intel
microprocessors.

Intel® compilers, associated libraries
and associated development tools may
or may not optimize to the same degree
for non-Intel microprocessors for
optimizations that are not unique to
Intel microprocessors. These
optimizations include Intel® Streaming
SIMD Extensions 2 (Intel® SSE2),
Intel® Streaming SIMD Extensions 3
(Intel® SSE3), and Supplemental
Streaming SIMD Extensions 3 (Intel®
SSSE3) instruction sets and other
optimizations. Intel does not
guarantee the availability,
functionality, or effectiveness of any
optimization on microprocessors not
manufactured by Intel.
Microprocessor-dependent optimizations
in this product are intended for use
with Intel microprocessors.

While Intel believes our compilers and
libraries are excellent choices to
assist in obtaining the best
performance on Intel® and non-Intel
microprocessors, Intel recommends that
you evaluate other compilers and
libraries to determine which best meet
your requirements. We hope to win
your business by striving to offer the
best performance of any compiler or
library; please let us know if you
find we do not

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文