mkl简介

article/2025/9/14 6:41:23

一、概况

(一)下载

下载免费版本,注意保留serial number(安装需要)

(二)安装

  1. 编辑silent.cfg 文件中的选项
  2. 安装需要2G的空间,默认的tmp空间不足使用**–tmp_dir**指定
./install.sh --silent ./silent.cfg --tmp-dir /dir

(三)基本概况

(四)文件结构

二、参数

(一)architecture

IA-32 or compatible: /lib/ia32_lin
Intel® 64 or compatible: /lib/intel64_lin
Intel® Many Integrated Core (Intel® MIC): /lib/intel64_lin_mic

(二)LP64 vs ILP64

LP64:使用32-bit的int
ILP64:使用64-bit的int,支持更大的数组

(三)threading

MKL有两种模式
parallel: 使用OpenMP(libiomp5.so)或者TBB(libtbb.so)两种线程技术
sequential: 不使用多线程,不建议使用

三、link library

(一)选择链接库

选择各个层对应的库,然后增加RTL

(二)advisor

根据输出选项自动生成需要的链接库

(三)例子

MKLROOT = /path/to/mkl
gcc myprog.c -L$(MKLROOT)/mkl/lib/intel64 -L$(MKLROOT)/lib/intel64_lin -I$(MKLROOT)/mkl/include -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm#-lmkl_intel_lp64: interface layer
#-lmkl_intel_thread: threading layer
#-lmkl_core: computational layer
#-liomp5: RTL(run-time library)
#-lm: 连接数学库(FFT/Laplace)
#-lpthread: libiomp5依赖于pthread库,需要在-liomp5后面添加-lpthread(顺序很重要)

四、优化

(一)多线程

OpenMP有三种方式可以设定,优先级由高到低:

  • 设置MKL_NUM_THREADS或者对应的函数
  • 设置OMP_NUM_THREADS或者对应的函数
  • 使用默认的OpenMP的线程数(物理核的个数)
    TBB只能使用接口函数的形式设置
    设置相应的线程数优化

(二)小矩阵

矩阵比较小的时候,使用MKL_DIRECT_CALL宏定义,可以忽略mkl的错误检查以及启动small-matrix kernels。

(三)代码技巧

1.数据对齐
2.LAPACK packed routines
3.FFT的数据长度为2的指数

(四)内存管理

1.避免内存泄露

  • 设置MKL_DISABLE_FAST_MM为1或者调用mkl_disable_fast_mm()函数,可能会对性能有负影响
  • 在当前线程调用mkl_free_buffers()或者mkl_thread_free_buffers()函数

2.使High-bandwidth Memory
3.使用自己的内存函数

五、mkl使用

(一)函数参考

(二)使用范例

后面的技术分享转移到微信公众号上面更新了,【欢迎扫码关注交流】

在这里插入图片描述


http://chatgpt.dhexx.cn/article/toKP4YRh.shtml

相关文章

如何解决kaldi的依赖库mkl安装失败的问题

最近在学习如何使用kaldi进行语音识别。按照进程进行安装部署时发现Intel MKL库总是失败。 通过搜索大量的资料,但都发现不太适用。现在将失败的症状和解决方法分享一下,希望能给读者提供一些帮助。 通过执行 ./check_dependencies.sh 发现缺少Intel M…

oneKey mkl安装

1、oneKey mkl核心安装 进入官方下载地址,采用离线安装方式 1)选择离线安装 2)可以直接点击“download”下载安装包后再解压安装(此种方式需要注册帐号,比较麻烦,介意选择下面的命令行安装) …

Linux下MKL库的安装部署与使用,并利用cmake编译器调用MKL库去提升eigen库的计算速度

文章目录 前言一、MKL库的下载二、MKL库的安装与配置1.MKL库的安装与配置2.代码测试 总结 前言 在用C/C编写模型预测控制算法(MPC)的代码时候,由于预测步长和控制步长的设置较大,导致在利用eigen库进行矩阵计算的时候,矩阵n次幂计算时间过长&…

mysql 报1055错误_MySQL数据库报1055错误

有点坑啊,当初装MySQL数据库的时候没有整配置文件,结果MySQL报1055错误的时候,网上的解决办法都说如果需要永久生效的话,只能通过改配置文件实现,but,我没有配置文件,蜜汁尴尬啊 1、已安装的MyS…

mysql运行sql错误1055_sql数据库执行错误代码1055怎么解决?

展开全部 错误代码1055。不过看了Expression里面的原因描述,我基本知道怎么回事了。原因是因为62616964757a686964616fe59b9ee7ad9431333431373139mysql中对 group by 用法的规定。严格意义上说,就是group by之后。select 的字段只能是group by的字段。或者需要加聚合函数的。…

FOJ 1055

一,题目链接 http://acm.fzu.edu.cn/problem.php?pid1055 二,题目描述 三,题目分析 1.程序段的格式是已知的,一行为三个字符,且中间是赋值运算符,只需用一个数组记录字符是否 是已知的(查表法…

MYSQL数据库报错 1055

MYSQL数据库报错 1055 今天在做毕业设计,当点开要查看的视图的时候,爆出了1055的错,该错误如下: 错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GRO…

leetcode1055

暴力查询即可,外面一层遍历target字符串,内层对source进行遍历,直到当前的内层遍历source中已无可匹配字符,在进行下一次source遍历,直到外层遍历结束。最终统计进行了几次内层遍历。 优化的方法:将内层遍历…

Mysql报错1055

Mysql group by报错 1055 [Err] 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xm_xhd.al.dy_uid’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_…

MySQL 报错1055

一、问题描述 SELECT * FROM tbluser GROUP BY sex当我以这条语句进行数据库查询的时候,报了个错: > 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ceb.tbluser.uid which is not functiona…

mac mysql 1055_MySQL错误1055

问题描述:在MySQL数据库下,执行SQL插入语句报错。错误信息如下: 错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。 ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select语句中查询出来的列必须是明确的(…

MySQL 错误代码:1055 解决方案(推荐!!)

MySQL 错误代码:1055 解决办法 一、 MySQL版本二、 问题描述1. 问题描述2.ONLY_FULL_GROUP_BY-SQL示例 三、解决办法1.方法一2.方法二(临时)3.方法三(永久) 四、sql_mode常用值 一、 MySQL版本 MySQL版本:8.0.11 二、…

MySQL 出现1055错误 this is incompatible with sql mode=only full group by 的解决办法

文章目录 一、打开MySQL8.0 Command Line Client二、找到MySQL的my.ini文件路径三、修改my.ini里面的内容 前言 在学习过程中出现的问题:IDEA与Navicat出现不兼容的情况 会弹出1055的错误,这种错误通常在mysql 5.7以上的版本才会出现 1055 Expression #…

MySQL查询出现1055错误的解决方法

当SQL语句查询报1055错误时的解决方法 报错内容如下 报错原因 1.SQL语句中使用了group by,并且不需要分组的字段没有加上any_value()函数 2.MySQL数据库版本是大于5.7,报错信息中最后有一句sql_modeONLY_FULL_GROUP_BY,是因为MySQL数据库的…

1055 习题4-9-3 逆序输出正整数各位上数字

题目描述 输入一个不多于5位的正整数,按逆序输出各位上的数字,末尾换行。 注意:确保输入的正整数的位数不多于5。 输入 一个不多于5位的正整数。 输出 逆序输出各位上的数字,中间以空格分隔。 注意末尾的换行。 样例输入 2143 样…

IDEA破解后老是出现agent弹窗问题

第一步:在1这个路径下早到2这个文件 2.用解压软件提取2这个文件META-INF里面的important.txt放到上面1这个目录下(这里使用的是7z解压)

Intellij IDEA 破解方法和地址

IntelliJ IDEA是来自捷克的Jetbrains公司开发的Java开发工具(完爆Eclipse/MyEclipse)。有旗舰版和社区版两大版本,相对社区版而言旗舰版的功能更加丰富。官网提供了两个版本之间差异的详细比较。擅长企业级应用、移动应用以及Web应用开发。 支持MacOS,Windows7,Lin…

idea破解办法

在安装后启动的时候,Activate new license with选择License server,填上http://idea.iteblog.com/key.php,如图所示: 点击Activate,然后就搞定了。

Intellij idea破解以及运行优化

Intellij idea破解以及运行优化 idea 破解: 方式一:服务器破解,这种方式比较快速,但是很不稳定,所以不推荐 方式二:在校学生或者教师都可以免费申请,申请网址:https://www.jetbrain…

IDEA破解后无法启动

在网上找了破解IDEA的方法 原文:https://blog.csdn.net/qq_38637558/article/details/78914772 ①到这个地方下载 IntelliJ IDEA 注册码:http://idea.lanyus.com/ ②然后将这个jar包放入bin目录下,bin目录下,你的idea安装后的…