zoukankan      html  css  js  c++  java
  • VS2019配置MKL教程(Windows)

    下载链接:https://software.intel.com/en-us/mkl

    文件下载

    官网注册后,选择MKL下载下来,安装到指定目录就行,不在多说。

    配置文件

    首先创建一个Windows桌面项目,再添加一个CPP源文件。

    打开项目属性页--配置属性,会多出Intel Performance...这一项,看下图配置

    在打开VC++目录,进行配置。我安装MKL的地方在D:IntelSWTools

    打开D:IntelSWToolscompilers_and_libraries_2019.5.281windows,由于版本不同,可能后面的版本更新日期可能不同。按照下面根据你的情况添加。

    可执行文件目录:D:IntelSWToolscompilers_and_libraries_2019.5.281windowsmklin

    包含目录:D:IntelSWToolscompilers_and_libraries_2019.5.281windowsmklinclude

    库目录:

    D:IntelSWToolscompilers_and_libraries_2019.5.281windowscompilerlibia32_win

    D:IntelSWToolscompilers_and_libraries_2019.5.281windowsmkllibia32_win

    注意:在选择生成程序时,选择生成x86程序。如果要生成x64程序,那么库文件那里选择intel64_win。

     

    打开链接器,在附加依赖项添加(如果配置64位程序,需要将mkl_intel_c.lib改成mkl_intel_lp64.lib

    mkl_intel_c.lib;mkl_intel_thread.lib;mkl_core.lib;libiomp5md.lib;

    配置测试

    #include <stdio.h>
    #include <stdlib.h>
    
    #include "mkl.h"
    
    #define min(x,y) (((x) < (y)) ? (x) : (y))
    
    int main()
    {
        double* A, * B, * C;
        int m, n, k, i, j;
        double alpha, beta;
    
        printf("
     This example computes real matrix C=alpha*A*B+beta*C using 
    "
            " Intel(R) MKL function dgemm, where A, B, and  C are matrices and 
    "
            " alpha and beta are double precision scalars
    
    ");
    
        m = 2000, k = 200, n = 1000;
        printf(" Initializing data for matrix multiplication C=A*B for matrix 
    "
            " A(%ix%i) and matrix B(%ix%i)
    
    ", m, k, k, n);
        alpha = 1.0; beta = 0.0;
    
        printf(" Allocating memory for matrices aligned on 64-byte boundary for better 
    "
            " performance 
    
    ");
        A = (double*)mkl_malloc(m * k * sizeof(double), 64);
        B = (double*)mkl_malloc(k * n * sizeof(double), 64);
        C = (double*)mkl_malloc(m * n * sizeof(double), 64);
        if (A == NULL || B == NULL || C == NULL) {
            printf("
     ERROR: Can't allocate memory for matrices. Aborting... 
    
    ");
            mkl_free(A);
            mkl_free(B);
            mkl_free(C);
            return 1;
        }
    
        printf(" Intializing matrix data 
    
    ");
        for (i = 0; i < (m * k); i++) {
            A[i] = (double)(i + 1);
        }
    
        for (i = 0; i < (k * n); i++) {
            B[i] = (double)(-i - 1);
        }
    
        for (i = 0; i < (m * n); i++) {
            C[i] = 0.0;
        }
    
        printf(" Computing matrix product using Intel(R) MKL dgemm function via CBLAS interface 
    
    ");
        cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
            m, n, k, alpha, A, k, B, n, beta, C, n);
        printf("
     Computations completed.
    
    ");
    
        printf(" Top left corner of matrix A: 
    ");
        for (i = 0; i < min(m, 6); i++) {
            for (j = 0; j < min(k, 6); j++) {
                printf("%12.0f", A[j + i * k]);
            }
            printf("
    ");
        }
    
        printf("
     Top left corner of matrix B: 
    ");
        for (i = 0; i < min(k, 6); i++) {
            for (j = 0; j < min(n, 6); j++) {
                printf("%12.0f", B[j + i * n]);
            }
            printf("
    ");
        }
    
        printf("
     Top left corner of matrix C: 
    ");
        for (i = 0; i < min(m, 6); i++) {
            for (j = 0; j < min(n, 6); j++) {
                printf("%12.5G", C[j + i * n]);
            }
            printf("
    ");
        }
    
        printf("
     Deallocating memory 
    
    ");
        mkl_free(A);
        mkl_free(B);
        mkl_free(C);
    
        printf(" Example completed. 
    
    ");
    
        system("PAUSE");
        return 0;
    }

  • 相关阅读:
    使用XHR2或Jsonp实现跨域以及实现原理
    正则表达式环视
    hibernate>一对一关联映射 (onetoone) 小强斋
    上传下载 小强斋
    Struts2><s:token />标签防止重复提交 小强斋
    hibernate>一对一关联映射 (onetoone) 小强斋
    Struts2>interceptor 小强斋
    hibernate>一对多关联映射 小强斋
    Struts2><s:token />标签防止重复提交 小强斋
    hibernate>多对多关联映射 小强斋
  • 原文地址:https://www.cnblogs.com/Mayfly-nymph/p/11617651.html
Copyright © 2011-2022 走看看