问题标签 [intel-oneapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
201 浏览

anaconda - 将英特尔 OneAPI 与 Anaconda 结合使用

我正在尝试在 Anaconda 环境中激活时使用 Intel OneAPI。如果我先创建一个 Anaconda 环境,则conda env list显示

但是,如果 I then source /opt/intel/oneapi/setvars.sh,则conda env list显示

我不能conda activate env_name了。我之前在另一台机器上成功设置了这个,我相信正确的设置应该显示为conda env list

关于在 Anaconda 环境中激活时如何正确获取 Intel One API 环境变量的任何想法?

0 投票
0 回答
117 浏览

fortran - 错误 #6633:实际参数的类型与虚拟参数的类型不同 - Intel Fortran Compiler Classic 2021.1.1

我有一个模块,它定义了一个类型,它的方法,以及其他一些与类型无关的方法。

在给定的点上,我从一个变量调用type(T), public :: var它的成员方法type_proc(),它在其内部调用一个通用模块过程gen_proc()。在那里,对于某些情况,我可能需要更改调用方法树的 ACTUAL 对象的某些成员(即var)。为此,我将this其作为常量指针call gen_proc()传递给函数调用时传递其地址,并访问其成员。

但是,我得到了描述的错误。

如果我通过引用而不是作为 const 指针传递它,则相同。

我看不出我是否做错了什么。此处Intel Fortran 错误 #6633:实际参数的类型与虚拟参数的类型不同,存在类似的情况,但call发生在不同的程序单元中。

编辑 2

好的,这已按预期编译并运行..

所以,甚至比以前更多,我不知道实际代码可能有什么问题......

0 投票
0 回答
64 浏览

makefile - 在函数“_start”中:(.text+0x20):未定义对“main”的引用 UsingMCX.o:在函数中

我正在尝试使用 intel oneapi 编译器 (ifort -v 2021.2.0) 编译一些 Fortran 代码,并将其与之前编码的另一个 Fortran 库 (MultiZ) 链接。我正在使用以下生成文件:

但是,我收到以下错误消息:

在一些警告消息之后,会显示以下错误消息:

0 投票
1 回答
398 浏览

anaconda - 让 IntelOneAPI 在 Windows 10 中工作

我已在我的 Windows 10 机器上成功安装了离线 Intel OneAPI 基础包。我进行了自定义安装,只选择了以下安装;

英特尔® oneAPI 数据分析库。
英特尔® oneAPI 深度神经网络库。
英特尔® oneAPI 数学内核库。
英特尔® oneAPI 线程构建模块。
适用于 Python 的英特尔® 分发版。

但我不知道如何让这些东西加速工作流程?我不使用 VisualStudio,但由于此安装要求安装 Visual Studio 2019,然后我下载并安装了 VisualStudio 2019,并已成功“集成 IDE”,如 OneAPI 安装程序所述。

但是当我打开 VisualStudio 时,它只显示我的独立 Python 3.10 安装。当我提供 Python 3.7 版本显示在环境中的 Intel Python 目录的路径时,但我不知道哪些模块可用于 Intel Python 预装并且不知道如何查看它们?
(相当于 pip list)??

我的问题是如何让这些工作?Intel Python 没有出现在“开始”菜单中的任何位置,当我浏览目录并打开 Intel python.exe 时,shell 说这个 Python 在 Conda 环境中并要求我安装 Anaconda(我没有安装在我的机器上)。

假设我现在安装 Anaconda,那安装不会带来它自己的 Python 和模块吗?我可以让它检测和使用英特尔 OneAPI 附带的 Python 和模块吗?

是否可以通过提供路径将此 Intel Python 链接到我通常使用的其他 IDE(VSCode、独立 Spyder)?

有人可以帮我完成这个,还是我应该坚持使用标准的 Python 和 pip?
OneAPI 显示的基准很诱人,所以我决定尝试,但现在我不知所措。

如果有人需要,这些是我的系统规格,Intel i5 第 11 代 i5-1135G7 @ 2.40GHz CPU。
NVIDIA MX330 和 Iris Xe GPU(启用 Optimus)
16 GiB RAM

0 投票
1 回答
119 浏览

parallel-processing - 英特尔 oneAPI 与旧版 Parallel Studio XE 的优势(Fortran 用户)

我对数值模型进行编程以在 Fortran 中以串行和并行方式(使用 MPI)求解偏微分方程。只有 Fortran,我不知道/不需要其他语言。我看到我现在需要迁移到 Intel OneAPI,在我拥有 Parallel Studio XE 2019 之前。迁移到 OneAPI 后,Fortran 普通用户会喜欢什么优势/新功能?我从未使用过 GPU,如果将来我想学习如何并行化代码并在 GPU 上运行,OneAPI 是否会使转换变得更容易?

0 投票
0 回答
122 浏览

vectorization - 英特尔编译器的显式内存预取

我有两个函数,一个计算行中连续元素之间的差异,第二个计算列中值之间的连续差异。因此,一个会计算M[i][j+1] -M[i][j],第二个会做M[i+1][j] - M[i][j]M作为矩阵。我按如下方式实现它们 -

但是,对它们进行基准测试,第一个和第二个函数的平均运行时间如下 -
firstFunction = 21.1432ms
secondFunction = 166.851ms

矩阵的大小是M = 9024N = 12032

对于类似的操作,这是运行时间的巨大增加。我怀疑这与内存访问和缓存有关,在第二种情况下,更多的周期用于从另一行获取内存。

所以我的问题分为两部分。

  1. 我对运行时差异的推理是否正确。
  2. 我该如何缓解。我的第一个想法是预取内存中的第二行并继续,但我无法预取动态计算的位置。如果_mm_prefetch问题确实与内存访问时间有关,将会有所帮助

我正在使用dpcpp编译器。编译选项为-g -O3 -fsycl -fsycl-targets=spir64 -mavx512f -mavx512vl -mavx512bw -qopenmp -liomp5 -lpthread. 此编译器具有pragma prefetch但不允许运行时计算的预取。但是,我真的很感激一些不是特定于编译器的东西,它也可能是特定于 GCC 的。

Edit1 - 刚试过_mm_prefetch,但也抛出error: argument to 'error: argument to '__builtin_prefetch' must be a constant integer _mm_prefetch(input + (i+1) * N, N);。所以还有一个问题,有什么方法可以预取运行时计算的内存位置?

TIA

0 投票
0 回答
61 浏览

c++ - 使用 SIMD 内在函数添加 8 位整数时出现非法指令错误


我有一个功能如下 -

但是,Illegal instruction (core dumped)当函数运行时,我遇到了非法指令错误(),并且在行抛出错误(如 gdb 所示) -

我目前正在使用英特尔的dpcpp编译器并添加以下编译选项 - -g -O3 -fsycl -fsycl-targets=spir64 -mavx512vl -mavx512bw -mavx512f

我的 CPU 是 i7 9750h,我知道它只支持 until avx2,但是我添加了这些标志,因为当我在我的代码中运行一些其他函数来编译mavx512时,编译器通过抛出错误来特别要求它。make但是,这些函数的操作几乎与dxy_SIMD完美运行相同。

我无法理解错误的来源,为什么它会抛出一个错误,Illegal Instruction Error即使我一直在相同的代码和相同的函数中使用该内在函数。

TIA

0 投票
1 回答
46 浏览

shell - 如何“缓存”英特尔 OneAPI setvars 的效果?

英特尔的 OneAPI 发行版(包括许多组件,例如 ICC)有一个名为 的脚本setvars.sh,它检查各种东西的存在,然后运行组件的各个脚本来设置环境变量。运行并将一些内容打印到终端需要一秒钟多的时间。

现在,我愿意运行一次,但我当然不想在每次启动 shell 时都运行它。我怎样才能以它在调用之前从我的环境中添加(或删除?)的增量形式“缓存”它的结果?这样我就可以使用以下脚本获取脚本:

?

当然,如果我的系统配置发生任何变化,我需要重新运行 setvars.sh,但我可以接受。


PS - 不得不说:OneAPI 是错误命名的缩影。它是除我们之外的任何人都不会使用的,众多 API 之一。

0 投票
0 回答
78 浏览

c++ - 用 Intel oneapi icc/icpc 编译 GROMACS 有 undefined feenableexcept/fedisableexcept

我在这里发帖是因为我认为 GROMACS 不会知道我的问题。我有 MacOS Big Sur 并下载了 Intel C/C++ 编译器,因为它应该让这个程序更快。我可以用 clang 和 GNU gcc 但不能用 Intel 编译。cmake 命令同时找到了feenableexcept/fedisableexcept,但是math/utilities.cpp在制作程序期间使用其中一个 C++ 文件中的函数时,它会失败。请参阅下面的失败。它可能与这篇文章有关

失败:

这是我的 cmake 命令

这些是我在运行 cmake 之前设置的标志

0 投票
1 回答
217 浏览

visual-studio - 如何解决 Visual Studio 2022 中的“找不到 rc.exe”问题?"

前提:我对 Fortran 编程和 Visual Studio 环境完全陌生。

我在 Microsoft Visual Studio Community 2022 中创建了一个非常简单的 Fortran 项目(源文件是 .f90 文件)。代码如下:

我处于调试模式,当我编译项目时一切正常。但是当我按下“构建解决方案”时,我收到错误:“rc.exe not found”。

在此处输入图像描述

我该如何解决?

这里是我安装的英特尔软件开发套件: 在此处输入图像描述