Linux下Intel编译器oneAPI安装和链接MKL库编译

devtools/2024/11/24 4:35:05/

参考: https://blog.csdn.net/qq_44263574/article/details/123582481

官网下载: https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html?packages=oneapi-toolkit&oneapi-toolkit-os=linux&oneapi-lin=offline
在这里插入图片描述
填写邮件和国家,下面可以看到下载和安装链接,依次执行即可:
在这里插入图片描述
安装后查看:

$ ls /opt/intel/oneapi/
2025.0   compiler       dnnl       ipp        mkl                   pti          tcm
advisor  dal            dpcpp-ct   ippcp      modulefiles-setup.sh  setvars.sh   umf
ccl      debugger       dpl        licensing  mpi                   support.txt  vtune
common   dev-utilities  installer  logs       oneapi-base-toolkit   tbb


一个cmake和makefile的例子, 我需要mkl, openmp:
makefile:

CC = g++ONEAPI_PATH=/opt/intel/oneapiCXXFLAGS = -std=c++14 -I${ONEAPI_PATH}/mkl/latest/include
LDFLAGS = -L${ONEAPI_PATH}/mkl/latest/lib/intel64 -L${ONEAPI_PATH}/compiler/latest/libLDLIBS = -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -liomp5 -lpthread -lm -ldl
# 在运行时查找动态库的路径
RPATH_FLAGS = -Wl,-rpath,${ONEAPI_PATH}/mkl/latest/lib/intel64 -Wl,-rpath,${ONEAPI_PATH}/compiler/latest/lib# 项目名和源文件
TARGET = test_single
SRC = test_single.cppall: $(TARGET)$(TARGET): $(SRC)$(CC) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(RPATH_FLAGS)clean:rm -f $(TARGET)

cmakelists:

cmake_minimum_required(VERSION 3.10)
project(MyMKLProject)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# Intel MKL options
set(MKL_ROOT "/opt/intel/oneapi/mkl/latest")# 包含 MKL 头文件目录
include_directories(${MKL_ROOT}/include)# 链接
link_directories(${MKL_ROOT}/lib/intel64)
link_directories(/opt/intel/oneapi/compiler/latest/lib)# 添加执行文件
add_executable(test_single test_single.cpp)# 链接到 MKL 库
target_link_libraries(test_singlemkl_intel_lp64    # LP64 modelmkl_sequential    # Single-threadedmkl_core          # Core MKL routinesiomp5             # Intel OpenMP library (if using MKL with OpenMP)pthreadmdl
)

http://www.ppmy.cn/devtools/136455.html

相关文章

基于spring boot扶贫助农系统设计与实现

摘 要 扶贫助农系统是一种旨在改善农村贫困地区经济发展和居民生活水平的综合信息化平台。该系统通过整合资源、提供信息服务和优化供应链管理,帮助农民增加收入并提升农业生产效率。系统功能包括农产品在线销售、扶贫资讯等等功能。用户界面友好,操作简…

低速接口项目之串口Uart开发(四)——UART串口实现FPGA内部AXILITE寄存器的读写控制

本节目录 一、设计背景 二、设计思路 三、逻辑设计框架 四、仿真验证 五、上板验证 六、往期文章链接本节内容 一、设计背景 通常,芯片手册或者IP都会提供一系列的用户寄存器以及相关的定义,用于软件开发人员进行控制底层硬件来调试,或封装…

Leetcode 每日一题 167 .两数之和

目录 引言 问题背景 输入输出规范 输入 输出 示例解析 示例 1 示例 2 示例 3 算法策略 Java代码实现 复杂度分析 结语 引言 在算法的世界里,有些问题虽然简单,但却是锻炼算法思维的绝佳练习。今天,我们将深入探讨一个在面试中经…

Zabbix:使用CentOS 9,基于LNMP平台,源码部署Zabbix 7。

ZBX:源码部署Zabbix 7 一、Zabbix概述1. 什么是zabbix2. 为什么学习zabbix3. 逻辑架构3. 实验环境4. 软件下载: 二、安装前的系统准备工作1. 配置主机名2. 关闭防火墙3. 关闭selinux4. 配置yum源5. 配置时钟同步6. 优化系统限制7. 安装JDK 三、部署LNMP环…

猎板科技:PCB 特殊定制领域的卓越引领者

一、专业团队,创新设计之源 猎板科技的核心竞争力首先源于其卓越的专业团队。这支队伍汇聚了经验丰富的资深工程师以及行业前沿的技术专家,他们在 PCB 设计领域拥有深厚的造诣和敏锐的洞察力。无论是面对常规 PCB 设计任务,还是应对极具挑战…

SpringBoot学习记录(六)配置文件参数化

SpringBoot学习记录(六)配置文件参数化 一、参数提取到配置文件中二、yml配置文件三、ConfigurationProperties注解实现批量属性注入 一、参数提取到配置文件中 定义在代码中的参数的值分散在各个不同的文件中,不便于后期维护管理&#xff0…

浅谈vue3 和 vue2的区别

vue3中不再导出一个Vue的构造函数,而是具名导出很多数据不给用户提供Vue构造函数来创建vue实例,使用一个具名导出的createApp,然后传入一个根组件来创建,然后返回一个类似于vue实例的对象,调用mount方法来实现挂载组件…

使用 vscode 调试 nodejs 代码

继前一篇:使用 cmake.js 在 Windows 上编译 js 代码 我们已经能在 vscode 上成功的编译出 js 代码,那我们该如何断点调试 js 代码以及 js 引用的 C 库源码呢 首先要先以 Debug 模式编译 js 代码 cmake-js clean cmake-js compile -D找到 debug 生成的 pd…