admin 管理员组

文章数量: 887021

文章目录

  • 前言
  • 一、oneMKL是什么?
  • 二、安装步骤
    • 1.下载官方下载器
    • 2.运行安装器
  • 三、VS2019的OneMKL环境配置
  • 四、测试
  • 最后


前言

本文将提供英特尔®oneAPI 数学内核库(Intel® oneAPI Math Kernel Library,简称 oneMKL)的windows安装教程,并搭配VS2019进行测试。博主已经重复实验过很多次,全过程童叟无欺,支持留言访问,欢迎收藏,点赞,加星星!


一、oneMKL是什么?

英特尔®oneAPI 数学内核库(Intel® oneAPI Math Kernel Library,简称 oneMKL)是一个计算数学库,其中包含高度优化的广泛线程例程,适用于需要最高性能的应用程序。
oneMKL 包含面向 CPU 架构的完整英特尔数学核心函数库(带有 C/Fortran 编程语言接口)的高性能优化,并为其添加了一组 SYCL* 接口,用于在各种 CPU 架构和英特尔®图形技术上实现某些关键功能的性能。oneMKL 提供 BLAS 和 LAPACK 线性代数例程、快速傅里叶变换、矢量化数学函数、随机数生成函数等其他功能。
该库提供 Fortran 和 C 编程语言接口。oneMKL C语言接口可以从用 C 或 C++以及可以引用 C 接口的任何其他语言编写的应用程序中调用。
有关功能、文档、代码示例和下载的完整列表,请访问英特尔 oneAPI 数学核心函数库官方网站。如果您计划将 oneMKL 用作 oneAPI 基本工具包的一部分,请考虑优先支持作为付费选项提供。如需英特尔社区支持,请访问 oneMKL 论坛。对于开源 oneMKL 接口项目,请访问 oneMKL GitHub 页面。

二、安装步骤

这里将 oneMKL 作为单独的软件包下载,并且配置到VS2019上。在安装oneMKL之前,请先安装Visual Studio 2019(oneMKL支持Visual Studio2022等其他版本)。本文已经默认大家安装好了VS2019,以下便直接进入oneMKL的安装教程

1.下载官方下载器

官方网址:oneMKL下载地址
选择适合自己电脑配置的安装器

在下图界面可以选择下载离线安装和在线安装器

博主2个都尝试了,下载很快,这里以下载离线安装器作为示范!

2.运行安装器

打开本地下载文件夹:

博主已经下载好了!右键点击管理员(遇事不决,管理员运行)运行。
请忽略这样的debug

选择合适的路径存储解包后的缓存,并勾选安装后删除解包后的缓存(在线安装没有这一步)

进入解包环节:

等待完成,点击弹窗,继续安装

进入安装器安装界面

等待完成安装器的安装,按下图所示操作

更改安装路径


更改路径后,点击右箭头

这里会默认识别出你按照的VS环境,如果没有请仔细配置VS安装环境。

点击右箭头,建议不发送手机信息,免得徒增烦恼。

点击 Install 等待安装,请耐心等待。

安装完成后


三、VS2019的OneMKL环境配置

创建一个新的项目,博主已经创建好了,这里直接打开该项目

打开项目属性管理器,点击属性

按如图所示,开启OneMKL的环境开关,即可完成VS2019的OneMKL环境配置,这是不是相当方便?


四、测试

请复制如下代码,通过调用OneMKL的随机数来判断是否安装成功
下面展示 随机数代码测试

#include <iostream>
#include <mkl.h>
#include <chrono>
#include<stdio.h>
#include<stdlib.h>
#include <string>

using namespace std;

int main()
{
	double* rand = new double[10];

	VSLStreamStatePtr stream;
	int seed = 111;
	double rang[2] = { -2, 2 };

	auto stutes = vslNewStream(&stream, VSL_BRNG_MT19937, seed);
	stutes = vdRngUniform(VSL_RNG_METHOD_UNIFORM_STD_ACCURATE, stream, 10, rand, rang[0], rang[1]);
	stutes = vslDeleteStream(&stream);

	cout << "生成 10个{-2,2} 范围内均匀分布的随机数" << endl;
	cout << "环境配置成功" << endl;
	cout << "随机数如下: " << endl;
	for (int i = 0; i < 10; i++)
	{
		cout << i << " : " << rand[i] << endl;
	}

	return 0;
}

运行结果如下:

最后

欢迎大家积极提出宝贵的建议 !
支持一下,收藏!点赞!!加星星!!!

本文标签: 英特尔 内核 数学 教程 oneMKL