Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6956 Discussions

Ivy Bridge (E5-2660 v2) processor and mkl_avx.dll

Qiang_W_2
Beginner
550 Views

Dear Forum,

I have an Windows 7 application that uses Intel MKL libraries. I run it on the following two systems:

1). Sandy Bridge (E5-2660 0), and 

2). Ivy Bridge (E5-2660 v2)

I noticed, using Process Explorer, that on Sandy Bridge, mkl_avx.dll is loaded, while on Ivy Bridge, mkl_mc3.dll is loaded. Moreover, the performance on Ivy Bridge (w/ mkl_mc3.dll) is 15-30% worse than that on Sandy Bridge (w/ mkl_avx.dll).

From the following two article, seems to me that both systems support AVX, and Ivy Bridge is the more advanced of these two.

https://software.intel.com/en-us/articles/intel-xeon-processor-e5-26004600-product-family-technical-overview

https://software.intel.com/en-us/articles/intel-xeon-processor-e5-2600-v2-product-family-technical-overview#conv

I am puzzled by the fact that Ivy Bridge system choose to use the more generic mkl_mc3.dll.

Your insight is very much appropriated!

WQ

 

 

 

 

0 Kudos
1 Solution
Qiang_W_2
Beginner
550 Views

Thank you very much Tim for the comment!

We have just figured out the problem. The machine that has Ivy Bridge processor does not satisfies the Intel AVX Operating System requirement. Citing Wikipedia below (http://en.wikipedia.org/wiki/Advanced_Vector_Extensions): 

AVX adds new register-state through the 256-bit wide YMM register file, so explicit operating system support is required to properly save and restore AVX's expanded registers between [[context switch]]es; without this, only AVX 128-bit is supported. The following operating system versions support AVX 256-bit:

  • Apple OS X: Support for AVX added in 10.6.8 (Snow Leopard) update released on June 23, 2011.
  • Linux: supported since kernel version 2.6.30 released on June 9, 2009.
  • Windows: supported in Windows 7 SP1 and Windows Server 2008 R2 Windows 8.
  • Windows Server 2008 R2 SP1 with Hyper-V requires a hotfix to support AMD AVX (Opteron 6200 and 4200 series) processors.
  • FreeBSD in a patch submitted on 21 January 2012.
  • DragonFly BSD added support in early 2013.
  • Solaris 10 Update 10 and Solaris 11.

Thanks to the whole Forum.

WQ

View solution in original post

0 Kudos
2 Replies
TimP
Honored Contributor III
550 Views

Mkl should choose the same code for ivy bridge as Sandy bridge, if your mkl was released after ivy bridge servers. Due to increased number of cores, affinity setting may have increased importance.

0 Kudos
Qiang_W_2
Beginner
551 Views

Thank you very much Tim for the comment!

We have just figured out the problem. The machine that has Ivy Bridge processor does not satisfies the Intel AVX Operating System requirement. Citing Wikipedia below (http://en.wikipedia.org/wiki/Advanced_Vector_Extensions): 

AVX adds new register-state through the 256-bit wide YMM register file, so explicit operating system support is required to properly save and restore AVX's expanded registers between [[context switch]]es; without this, only AVX 128-bit is supported. The following operating system versions support AVX 256-bit:

  • Apple OS X: Support for AVX added in 10.6.8 (Snow Leopard) update released on June 23, 2011.
  • Linux: supported since kernel version 2.6.30 released on June 9, 2009.
  • Windows: supported in Windows 7 SP1 and Windows Server 2008 R2 Windows 8.
  • Windows Server 2008 R2 SP1 with Hyper-V requires a hotfix to support AMD AVX (Opteron 6200 and 4200 series) processors.
  • FreeBSD in a patch submitted on 21 January 2012.
  • DragonFly BSD added support in early 2013.
  • Solaris 10 Update 10 and Solaris 11.

Thanks to the whole Forum.

WQ

0 Kudos
Reply