<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic MKL does not support Borland in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940746#M14457</link>
    <description>&lt;P&gt;MKL does not support Borland C++ compiler. This is the full list of C/C++ compilers supported on Windows. See more information about MKL system requirments here: &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-110-system-requirements/" target="_blank"&gt;http://software.intel.com/en-us/articles/intel-mkl-110-system-requirements/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Supported C/C++ and Fortran compilers for Windows*:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Intel® Visual Fortran Composer XE 2013 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® Visual Fortran Compiler 13.0 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® Visual Fortran Compiler 13.1 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Composer XE 2013 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Compiler 13.0 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Compiler 13.1 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2011&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2010&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2008&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2005 Team Suite Edition - help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* SDK for Windows* 7 (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* Software Development Kit Update for Windows Vista* (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows Server* 2003 R2 Platform SDK (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* Software Development Kit for Windows Server* 2008&lt;/LI&gt;
&lt;LI&gt;PGI* Workstation Complete version 12.5&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 23 Apr 2013 16:13:27 GMT</pubDate>
    <dc:creator>Zhang_Z_Intel</dc:creator>
    <dc:date>2013-04-23T16:13:27Z</dc:date>
    <item>
      <title>Inconsistencies with declaration of 64-bit integers ( signed and unsigned ) in many MKL functions</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940741#M14452</link>
      <description>&lt;P&gt;There are inconsistencies with declaration of 64-bit integers ( signed and unsigned ) in&amp;nbsp;many MKL functions. In &lt;STRONG&gt;mkl_types.h&lt;/STRONG&gt; there is a declaration:&lt;/P&gt;
&lt;P&gt;/* MKL integer types for LP64 and ILP64 */&lt;BR /&gt;#if (!defined(__INTEL_COMPILER)) &amp;amp; defined(_MSC_VER)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MKL_INT64 __int64&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MKL_UINT64 unsigned __int64&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MKL_INT64 long long int&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define MKL_UINT64 unsigned long long int&lt;BR /&gt;#endif&lt;/P&gt;
&lt;P&gt;So, &lt;STRONG&gt;MKL_INT64&lt;/STRONG&gt; type is a portable declaration. However, in many MKL functions non-portable&amp;nbsp;declarations &lt;STRONG&gt;long long int&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;unsigned long long int&lt;/STRONG&gt; are&amp;nbsp;used. It creates&amp;nbsp;lots of&amp;nbsp;problems&amp;nbsp;if some legacy C++ compilers&amp;nbsp;are used.&amp;nbsp;For example, Borland C++ v5.x&amp;nbsp;doesn't support&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;long long int&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;unsigned long long int&lt;/STRONG&gt; types.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 12:49:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940741#M14452</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-23T12:49:55Z</dc:date>
    </item>
    <item>
      <title>It is futile to attempt using</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940742#M14453</link>
      <description>&lt;P&gt;It is futile to attempt using 64-bit MKL libraries using a 32-bit C compiler. Apart from the 64-bit signed integer problems that you brought up, pointer size, instruction set and ABI are mismatched, and the RTL is unsuitable.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 14:04:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940742#M14453</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-04-23T14:04:36Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...and the RTL is</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940743#M14454</link>
      <description>&amp;gt;&amp;gt;...and the RTL is unsuitable...

I'm talking about 64-bit data types and Not 64-bit MKL libraries and everything I needed works (!) already in a 32-bit test environment.

&amp;gt;&amp;gt;...It is futile to attempt using 64-bit MKL libraries using a 32-bit C compiler...

No, I don't use 64-bit MKL DLLs with a 32-bit application built with a 32-bit Borland C++ compiler .

Once again, 32-bit Borland C++ compiler supports &lt;STRONG&gt;__in64&lt;/STRONG&gt; data type ( built-in ) and doesn't support declarations &lt;STRONG&gt;long long int&lt;/STRONG&gt; or &lt;STRONG&gt;unsigned long long int&lt;/STRONG&gt;.

Also, I've succesfully created a software development environment ( a project for a 32-bit Windows platform / a 32-bit Windows application ) that uses 32-bit MKL with Borland C++ compiler but I was forced to modify some MKL headers because of these inconsistencies with declarations. So, as soon as another developer, who will maintain the codes, will do update for MKL all modified headers will be overwritten and compilation will be broken.

Take into account that in some labs at some universities free legacy C++ compilers are still used.</description>
      <pubDate>Tue, 23 Apr 2013 14:17:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940743#M14454</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-23T14:17:00Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...It is futile to attempt.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940744#M14455</link>
      <description>&amp;gt;&amp;gt;...It is &lt;STRONG&gt;futile&lt;/STRONG&gt; to attempt...

I greatly appreciate a really professional / technical feedback and I don't think we need to discuss if this is &lt;STRONG&gt;futile&lt;/STRONG&gt; attempt or who needs this, etc.</description>
      <pubDate>Tue, 23 Apr 2013 14:35:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940744#M14455</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-23T14:35:20Z</dc:date>
    </item>
    <item>
      <title>Sergey,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940745#M14456</link>
      <description>&lt;P&gt;Sergey,&lt;/P&gt;
&lt;P&gt;The first line of the code snippet that you included from mkl.h contained " MKL integer types for LP64 and ILP64 ", and I (incorrectly, it now appears) took it for granted that you were using the LP64 or ILP64 libraries. For the same reason, I did not bother to check whether these lines in mkl.h might remain after preprocessing in 32-bit mode.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 15:36:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940745#M14456</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-04-23T15:36:00Z</dc:date>
    </item>
    <item>
      <title>MKL does not support Borland</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940746#M14457</link>
      <description>&lt;P&gt;MKL does not support Borland C++ compiler. This is the full list of C/C++ compilers supported on Windows. See more information about MKL system requirments here: &lt;A href="http://software.intel.com/en-us/articles/intel-mkl-110-system-requirements/" target="_blank"&gt;http://software.intel.com/en-us/articles/intel-mkl-110-system-requirements/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Supported C/C++ and Fortran compilers for Windows*:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Intel® Visual Fortran Composer XE 2013 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® Visual Fortran Compiler 13.0 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® Visual Fortran Compiler 13.1 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Composer XE 2013 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Compiler 13.0 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Intel® C++ Compiler 13.1 for Windows* OS&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2011&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2010&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2008&amp;nbsp;- help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Visual Studio* 2005 Team Suite Edition - help file and environment integration&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* SDK for Windows* 7 (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* Software Development Kit Update for Windows Vista* (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows Server* 2003 R2 Platform SDK (Intel® 64)&lt;/LI&gt;
&lt;LI&gt;Microsoft Windows* Software Development Kit for Windows Server* 2008&lt;/LI&gt;
&lt;LI&gt;PGI* Workstation Complete version 12.5&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 16:13:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940746#M14457</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-04-23T16:13:27Z</dc:date>
    </item>
    <item>
      <title>Zhang,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940747#M14458</link>
      <description>Zhang,

A note could be added that any 32-bit versions of MKL could be used with legacy 32-bit Borland C++ compiler(s) and with latest versions of 32-bit MinGW C++ compiler(s). However, some modifications in header files are needed.

What I see that there is still some misunderstanding what I'm talking about and because of this I will provide additional technical details. I detected lots of issues with &lt;STRONG&gt;declarations&lt;/STRONG&gt; of MKL functions and they need to be addressed in order to improve portability of MKL. So, my report is almost ready and I will post it soon.

In overall, it took just two working days to integrate MKL and Borland C++ compiler.

Thank you everybody for feedbacks!</description>
      <pubDate>Wed, 24 Apr 2013 01:00:38 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940747#M14458</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T01:00:38Z</dc:date>
    </item>
    <item>
      <title>[ Note 1 ]</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940748#M14459</link>
      <description>&lt;STRONG&gt;[ Note 1 ]&lt;/STRONG&gt;

All cases when declarations &lt;STRONG&gt;long long int&lt;/STRONG&gt; or &lt;STRONG&gt;unsigned long long int&lt;/STRONG&gt; are used need to be replaced with portable, like:
...
#define MKL_INT64 __int64
#define MKL_UINT64 unsigned __int64
...

&lt;STRONG&gt;[ Note 2 ]&lt;/STRONG&gt;

&lt;STRONG&gt;mkl_lapacke.h&lt;/STRONG&gt; is Not included in &lt;STRONG&gt;mkl_types.h&lt;/STRONG&gt;

&lt;STRONG&gt;[ Note 3 ]&lt;/STRONG&gt;

Even if in &lt;STRONG&gt;mkl.h&lt;/STRONG&gt; there is a define MKL_CALL_CONV:
...
#if defined( MKL_STDCALL )
        #define MKL_CALL_CONV __stdcall
#else
        #define MKL_CALL_CONV __cdecl
#endif
...
some MKL functions, like &lt;STRONG&gt;cblas_sgemm&lt;/STRONG&gt;, are Not declared with any specificator. For example, see in &lt;STRONG&gt;mkl_cblas.h&lt;/STRONG&gt; header file:
...
void &lt;STRONG&gt;cblas_sgemm&lt;/STRONG&gt;(const  CBLAS_ORDER Order, const  CBLAS_TRANSPOSE TransA,
                 const  CBLAS_TRANSPOSE TransB, const MKL_INT M, const MKL_INT N,
                 const MKL_INT K, const float alpha, const float *A,
                 const MKL_INT lda, const float *B, const MKL_INT ldb,
                 const float beta, float *C, const MKL_INT ldc);
...</description>
      <pubDate>Wed, 24 Apr 2013 05:13:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940748#M14459</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:13:36Z</dc:date>
    </item>
    <item>
      <title>[ Note 4 ]</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940749#M14460</link>
      <description>&lt;STRONG&gt;[ Note 4 ]&lt;/STRONG&gt;

It would be nice to have a set of macros that control inclusion of all MKL headers files in &lt;STRONG&gt;mkl.h&lt;/STRONG&gt;. So, instead of
...
#include "mkl_blas.h"
#include "mkl_dfti.h"
#include "mkl_cblas.h"
#include "mkl_lapack.h"
#include "mkl_solver.h"
#include "mkl_vml.h"
#include "mkl_vsl.h"
#include "mkl_df.h"
#include "mkl_service.h"
...
to have something like ( more controllable way):
...
#ifndef _NO_MKL_BLAS_
#include "mkl_blas.h"
#endif
#ifndef _NO_MKL_DFTI_
#include "mkl_dfti.h"
#endif
#ifndef _NO_MKL_CBLAS_
#include "mkl_cblas.h"
#endif
#ifndef _NO_MKL_LAPACK_
#include "mkl_lapack.h"
#endif
#ifndef _NO_MKL_SOLVER_
#include "mkl_solver.h"
#endif
#ifndef _NO_MKL_VML_
#include "mkl_vml.h"
#endif
#ifndef _NO_MKL_VSL_
#include "mkl_vsl.h"
#endif
#ifndef _NO_MKL_DT_
#include "mkl_df.h"
#endif
#ifndef _NO_MKL_SERVICE_
#include "mkl_service.h"
#endif
...
and it means if a developer doesn't need any functions from &lt;STRONG&gt;mkl_service.h&lt;/STRONG&gt; header file it could be controlled as follows:

#define _NO_MKL_SERVICE_
#include "mkl.h"

and so on.</description>
      <pubDate>Wed, 24 Apr 2013 05:15:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940749#M14460</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:15:12Z</dc:date>
    </item>
    <item>
      <title>Correction for [ Note 2 ]</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940750#M14461</link>
      <description>&lt;STRONG&gt;Correction for [ Note 2 ]&lt;/STRONG&gt;

&lt;STRONG&gt;mkl_lapacke.h&lt;/STRONG&gt; is Not included in &lt;STRONG&gt;mkl.h&lt;/STRONG&gt;</description>
      <pubDate>Wed, 24 Apr 2013 05:16:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940750#M14461</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:16:56Z</dc:date>
    </item>
    <item>
      <title>My updates affected these MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940751#M14462</link>
      <description>My updates affected these MKL header files:

mkl_types.h
mkl_cblas.h
mkl_pardiso.h
mkl_vsl_functions.h

and five Borland linker compatible import libraries created:

mkl_rt.lib
mkl_core.lib
mkl_def.lib
mkl_sequential.lib
mkl_scalapack_core.lib</description>
      <pubDate>Wed, 24 Apr 2013 05:19:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940751#M14462</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:19:34Z</dc:date>
    </item>
    <item>
      <title>Here are results of a simple</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940752#M14463</link>
      <description>Here are results of a simple matrix multiplication test with four MKL functions:

Application - &lt;STRONG&gt;BccTestApp&lt;/STRONG&gt; - WIN32_BCC - Debug
Tests: Start
&amp;gt; Test1153 Start &amp;lt;

&lt;STRONG&gt;Sub-Test 1.1&lt;/STRONG&gt;
        Intel(R) Math Kernel Library Version 10.3.12 Product Build 20120831 for 32-bit applications
        Major version         : 10
        Minor version         : 3
        Update version        : 12

&lt;STRONG&gt;Sub-Test 1.2 - Runtime binding of MKL functions&lt;/STRONG&gt;
Completed

&lt;STRONG&gt;Sub-Test 3.2 - SGEMM&lt;/STRONG&gt;
Matrix multiplication C[ 1024x1024 ] = A[ 1024x1024 ] * B[ 1024x1024 ]
Allocating memory for matrices ( 32-byte alignment )
Intializing matrix data
Measuring performance of SGEMM function
        Iteration 01 - Completed in 0.531 secs
        Iteration 02 - Completed in 0.500 secs
        Iteration 03 - Completed in 0.516 secs
        Iteration 04 - Completed in 0.515 secs
        Iteration 05 - Completed in 0.516 secs
Deallocating memory

&lt;STRONG&gt;Sub-Test 3.3 - CBLAS_SGEMM&lt;/STRONG&gt;
Matrix multiplication C[ 1024x1024 ] = A[ 1024x1024 ] * B[ 1024x1024 ]
Allocating memory for matrices ( 32-byte alignment )
Intializing matrix data
Measuring performance of CBLAS_SGEMM function
        Iteration 01 - Completed in 0.515 secs
        Iteration 02 - Completed in 0.532 secs
        Iteration 03 - Completed in 0.515 secs
        Iteration 04 - Completed in 0.516 secs
        Iteration 05 - Completed in 0.516 secs
Deallocating memory

&lt;STRONG&gt;Sub-Test 3.4 - DGEMM&lt;/STRONG&gt;
Matrix multiplication C[ 1024x1024 ] = A[ 1024x1024 ] * B[ 1024x1024 ]
Allocating memory for matrices ( 64-byte alignment )
Intializing matrix data
Measuring performance of DGEMM function
        Iteration 01 - Completed in 0.922 secs
        Iteration 02 - Completed in 0.922 secs
        Iteration 03 - Completed in 0.922 secs
        Iteration 04 - Completed in 0.921 secs
        Iteration 05 - Completed in 0.922 secs
Deallocating memory

&lt;STRONG&gt;Sub-Test 3.5 - CBLAS_DGEMM&lt;/STRONG&gt;
Matrix multiplication C[ 1024x1024 ] = A[ 1024x1024 ] * B[ 1024x1024 ]
Allocating memory for matrices ( 64-byte alignment )
Intializing matrix data
Measuring performance of CBLAS_DGEMM function
        Iteration 01 - Completed in 0.922 secs
        Iteration 02 - Completed in 0.969 secs
        Iteration 03 - Completed in 0.906 secs
        Iteration 04 - Completed in 0.938 secs
        Iteration 05 - Completed in 0.890 secs
Deallocating memory

&amp;gt; Test1153 End &amp;lt;
Tests: Completed
Memory Blocks Allocated   :    12
Memory Blocks Released    :    12
Memory Blocks NOT Released:     0
Memory Tracer Integrity Verified - Memory Leaks NOT Detected

Deallocating Memory Tracer Data Table
Completed</description>
      <pubDate>Wed, 24 Apr 2013 05:22:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940752#M14463</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:22:04Z</dc:date>
    </item>
    <item>
      <title>Tests results with different</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940753#M14464</link>
      <description>Tests results with different C++ compilers for &lt;STRONG&gt;SGEMM&lt;/STRONG&gt; function are very consistent because the same MKL runtime DLLs are used:

&lt;STRONG&gt;[ Intel C++ compiler ]&lt;/STRONG&gt;
...
Measuring performance of SGEMM function
        Iteration 01 - Completed in 0.532 secs
        Iteration 02 - Completed in 0.515 secs
        Iteration 03 - Completed in 0.516 secs
        Iteration 04 - Completed in 0.516 secs
        Iteration 05 - Completed in 0.500 secs
...

&lt;STRONG&gt;[ Borland C++ compiler ]&lt;/STRONG&gt;
...
Measuring performance of SGEMM function
        Iteration 01 - Completed in 0.516 secs
        Iteration 02 - Completed in 0.516 secs
        Iteration 03 - Completed in 0.515 secs
        Iteration 04 - Completed in 0.516 secs
        Iteration 05 - Completed in 0.515 secs
...
&lt;STRONG&gt;[ Microsoft C++ compiler ]&lt;/STRONG&gt;
...
Measuring performance of SGEMM function
        Iteration 01 - Completed in 0.515 secs
        Iteration 02 - Completed in 0.532 secs
        Iteration 03 - Completed in 0.531 secs
        Iteration 04 - Completed in 0.531 secs
        Iteration 05 - Completed in 0.500 secs
...</description>
      <pubDate>Wed, 24 Apr 2013 05:23:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940753#M14464</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:23:37Z</dc:date>
    </item>
    <item>
      <title>[ Correction for Note 1 ]</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940754#M14465</link>
      <description>&lt;STRONG&gt;[ Correction for Note 1 ]&lt;STRONG&gt;

All cases when declarations &lt;STRONG&gt;long long int&lt;/STRONG&gt; or &lt;STRONG&gt;unsigned long long int&lt;/STRONG&gt; are used need to be replaced with portable &lt;STRONG&gt;MKL_INT64&lt;/STRONG&gt; or &lt;STRONG&gt;MKL_UINT64&lt;/STRONG&gt; based on:
...
#define &lt;STRONG&gt;MKL_INT64&lt;/STRONG&gt; __int64
#define &lt;STRONG&gt;MKL_UINT64&lt;/STRONG&gt; unsigned __int64
...&lt;/STRONG&gt;&lt;/STRONG&gt;</description>
      <pubDate>Wed, 24 Apr 2013 05:27:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940754#M14465</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-24T05:27:16Z</dc:date>
    </item>
    <item>
      <title>I am just a casual user of C,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940755#M14466</link>
      <description>&lt;P&gt;I am just a casual user of C, but it seems to me that replacing &lt;STRONG&gt;long long int&lt;/STRONG&gt; with &lt;STRONG&gt;__int64&lt;/STRONG&gt; would &lt;EM&gt;reduce&lt;/EM&gt; portability. The C99 standard (see for example &lt;A href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf" target="_blank"&gt;http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf&lt;/A&gt;, section 6.2.5.4) specifies &lt;STRONG&gt;long long int&lt;/STRONG&gt; to be a standard integer type. There is no mention of &lt;STRONG&gt;__int64&lt;/STRONG&gt; in the document, and GCC does not recognize it as a native type; perhaps it is a Microsoft C extension that is also supported by Borland C.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Apr 2013 13:49:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940755#M14466</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2013-04-24T13:49:39Z</dc:date>
    </item>
    <item>
      <title>Sergey,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940756#M14467</link>
      <description>&lt;P&gt;Sergey,&lt;/P&gt;
&lt;P&gt;Thank you very much for your extensive notes. We will take this into consideration as part of our ongoing effort of making MKL more portable. If you know more about how widely Borland C++ compiler and other legacy compilers are still used in some organizations, please let us know your insight. This will help us to justify our effort.&lt;/P&gt;
&lt;P&gt;Thanks again.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Apr 2013 16:31:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940756#M14467</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-04-24T16:31:31Z</dc:date>
    </item>
    <item>
      <title>http://msinttypes.googlecode</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940757#M14468</link>
      <description>&lt;P&gt;&lt;A href="http://msinttypes.googlecode.com/svn/trunk/stdint.h" target="_blank"&gt;http://msinttypes.googlecode.com/svn/trunk/stdint.h&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;is a visual studio compatible implementation of stdint.h.&amp;nbsp; I see advantages in such additions to promote portable use of data types.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Apr 2013 18:03:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940757#M14468</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2013-04-24T18:03:21Z</dc:date>
    </item>
    <item>
      <title>Thanks for the note about C99</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940758#M14469</link>
      <description>Thanks for the note about C99 standard.

&amp;gt;&amp;gt;...GCC does not recognize it as a native type; perhaps it is a Microsoft C extension that is also supported
&amp;gt;&amp;gt;by Borland C...

I think initially it could be a joint effort by Intel ( 64-bit instructions set in a CPU \ C++ compiler ) and Microsoft ( support of 64-bit instructions set in OSs \ C++ compiler ). Since Borland was always claiming that compatibility of Borland C++ compiler with Microsoft C++ compiler is very-very high it didn't have a choice and of course it supported these 64-bit types.

Ideally these portable declarations should look like ( in pseudo-codes / more choices as you can see ):

#if  ( &lt;STRONG&gt;MSC &amp;amp; ICC&lt;/STRONG&gt; )
#define MKL_INT64 __int64
#define MKL_UINT64 unsigned __int64
#endif
#if  ( &lt;STRONG&gt;SOME_LEGACY_COMPILER&lt;/STRONG&gt; )
#define MKL_INT64 long long int
#define MKL_UINT64 unsigned long long int
#endif
#if  ( &lt;STRONG&gt;C99_STANDARD&lt;/STRONG&gt; )
#define MKL_INT64 long long int
#define MKL_UINT64 unsigned long long int
#endif
#if  ( &lt;STRONG&gt;GCC&lt;/STRONG&gt; )
#define MKL_INT64 long long int
#define MKL_UINT64 unsigned long long int
#endif
#if  ( &lt;STRONG&gt;BCC &amp;amp; MINGW&lt;/STRONG&gt; )
#define MKL_INT64 __int64
#define MKL_UINT64 unsigned __int64
#endif
#if  ( &lt;STRONG&gt;MKL_INT64 &amp;amp; MKL_UINT64 Not defined&lt;/STRONG&gt; )
#pragma error ( "MKL_INT64 &amp;amp; MKL_UINT64 are Not defined" )
#endif

and the most important:

&lt;STRONG&gt;[ Allowed declaration of MKL function ]&lt;/STRONG&gt;

void _CALLING_CONV_ &lt;STRONG&gt;SomeMklFunction&lt;/STRONG&gt;( MKL_INT64 arg1, MKL_UINT64 arg2 );

&lt;STRONG&gt;[ Not Allowed declaration of MKL function ]&lt;/STRONG&gt;

void _CALLING_CONV_ &lt;STRONG&gt;SomeMklFunction&lt;/STRONG&gt;( long long int arg1, unsigned long long int arg2 );</description>
      <pubDate>Thu, 25 Apr 2013 00:18:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940758#M14469</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-25T00:18:00Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;...If you know more about</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940759#M14470</link>
      <description>&amp;gt;&amp;gt;...If you know more about how widely Borland C++ compiler and other legacy compilers are still used in some organizations,
&amp;gt;&amp;gt;please let us know your insight...

Unfortunately, I don't have any statistics about usage of legacy C++ compilers. However, take into account that lots of applications were compiled / built with Borland C++ compiler in the past and they still could be used in universities, in small software companies, by independent software developers, etc.

&amp;gt;&amp;gt;...This will help us to justify our effort...

It makes sense to consider and if a positive decision will be made all updates need to be done step by step ( one MKL domain at a time ) because MKL is a very big library.</description>
      <pubDate>Thu, 25 Apr 2013 00:31:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940759#M14470</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-25T00:31:00Z</dc:date>
    </item>
    <item>
      <title>Thanks, Tim.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940760#M14471</link>
      <description>Thanks, Tim.

&amp;gt;&amp;gt;...is a visual studio compatible implementation of stdint.h.  I see advantages in such additions to promote portable
&amp;gt;&amp;gt;use of data types...

I see now where the root cause of the problem is and technical details will be provided after I'll look at some headers from all C++ compilers I use.</description>
      <pubDate>Thu, 25 Apr 2013 01:51:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Inconsistencies-with-declaration-of-64-bit-integers-signed-and/m-p/940760#M14471</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2013-04-25T01:51:33Z</dc:date>
    </item>
  </channel>
</rss>

