问题标签 [intel-ipp]
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.
intel - 如何开始使用图书馆 intel ipp?
我得到了这份工作:1。产生一个正弦信号。2.使用 FFT 构建其频谱。首先,我为 Visual Studio 2010 安装了 Intel Parallel Studio XE 2011。在 vs 2010 中出现了 Fortran。但是任务写在c++上。有些东西没有得到它。
opencv - 较旧的 OpenCV 1.1 与较新的英特尔集成性能基元 (IPP) 7.1
我在让 OpenCV 1.1 加载英特尔的集成性能基元 (IPP) 7.1 版时遇到了一些麻烦。
我的旧 Open CV 1.1 代码最初是在另一台旧的 Windows XP 机器上与 IPP 6.1 一起使用的。出于不重要的原因,我现在想在带有英特尔 IPP 7.1的全新 Windows 7 机器上使用它,它是Intel Composer XE 2013的一部分。英特尔的文档建议我必须更改 cxswitcher.c 中的三行以让旧的 OpenCV 代码找到新的英特尔 IPP,即我应该更新这些行:
我这样做是为了让它们现在包含版本号为“7.1”的字符串,尽可能地匹配模式:
我已经重新编译并将以下目录添加到我的路径中:
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel64\ipp
C:\Program Files (x86)\Intel\Composer XE 2013\redist\intel32\ipp
但是,当我运行包含该cvGetModuleInfo()
函数的示例代码时,我的代码无法加载 IPP dll,我得到以下输出:
� 请注意,我已经进行了一些其他测试。英特尔的 IPP 演示C:\Program Files (x86)\Intel\Composer XE 2013\ipp\demo\intel64
只有在我将带有 DLL 的目录添加到路径后才能运行,所以这让我认为我的 PATH 设置是正确的。我还确认这个目录实际上是通过在 MSYS 提示符下运行添加到我的 MSYS 命令提示符中的路径中echo $PATH
的。
我怀疑问题出在cxswitcher.c
.
我还应该尝试什么?
c - 寻找使用英特尔 IPP 进行 FFT 卷积的工作示例
现在只是想把我的头绕在 IPP 上。有没有人有任何可用的 C/C++ 代码来对图像进行 FFT 卷积?
linux - 在 Linux 上使用 IPP 7.1 编译 OpenCV 2.4.5
我正在尝试使用 TBB 和 IPP 7.1 在 Ubuntu (12.10) 上编译 opencv 2.4.5。我正在使用 cmake 配置生成文件,使用以下命令:
之前设置了 IPPROOT 变量:
(文档声明 USE_IPP 而不是 WITH_IPP,但这是不正确的,因为 CMake 打印出它忽略了开关。)cmake 实用程序似乎识别了 IPP 库并打印出:
Cmake 成功,构建(make)也是如此。问题是输出文件没有以任何方式链接到 IPP,实际上与不使用 IPP 构建的文件相同,使用
(IPP 默认关闭)。
有没有人能够成功构建 OpenCV 以便它真正利用 IPP?
arrays - 英特尔的 IPP 从阵列创建图像
我在 C++ 中工作,我有一个浮点值的向量容器。我想将图像文件写入磁盘,其中图像的像素值是数组中的值。例如,我的数组中有 40,000 个值,我希望以某种格式创建一个 200x200 的图像文件(格式不是非常重要,但是,如果可能的话,我更喜欢无损编码的东西)。我想使用英特尔的库 IPP 来做到这一点。有人能告诉我哪个功能最适合我的问题吗?(目前我只坚持灰度图像。)
intel-ipp - 英特尔 IPP 8.0 是否支持就地操作?
IPP <= 7.1 具有特殊的就地功能。
在 IPP 8 中,它们已被弃用:deprecation-summary
目前尚不清楚新的异地功能是否也支持就地操作。
我的猜测是,对于某些函数,可以为 src/dst 传递相同的指针,但对于其他函数则不是,但这没有记录。
这是文档
c++ - 以与英特尔的性能原语相同的方式构建 MFCC 滤波器组
我正在尝试构建用于生成 MFCC 的三角滤波器。我有基于 IPP 6 的现有代码,但由于 IPP 8 现在正在开发中,我真的很想获得一个可以工作且不依赖于旧的、现在不受支持的库的实现。
我已经生成了相关的 mel 缩放中心频率(加上两端的 2)。
然后我尝试按如下方式构建过滤器:
然后,我将上述向量与 FFT 结果逐段相乘(其中 bin 0 是 0Hz 或 DC 偏移 bin)并将它们相加(本质上是点积)。
这似乎工作得相当好,但我得到的结果与 IPP 相比有很大不同,足以让我有点担心。
有什么我做错了吗?
整个过程包括进行 FFT,计算返回的复矢量 (std::abs) 的大小,然后应用如上计算的滤波器组。代码如下:
这是一个情节,其中系列 1 是我的 MFCC,系列 2 是 IPP:
在日志和举重阶段(我已经确认其工作方式与 IPP 相同)之后,结果更加错误。
任何想法和指示将不胜感激!
编辑:我应该指出,这里有一些关于 IPP 功能的文档:
这似乎显示了数学。但是,我不确定 yk 和 ck 到底是什么......
c++ - 单通道图像的滑动窗口标准滤波器
我想将具有固定补丁大小的“标准过滤器”应用于单通道图像。
那就是我想out[i,j]
等于周围邻域的像素值的标准差img[i,j]
。
对于那些熟悉 Matlab 的人,我正在寻找相当于
ippi
有没有办法使用函数来做到这一点?
我遇到了,ippiMean_StdDev
但它似乎适用于单个窗口,而不是滑动窗口(返回标量值而不是数组)。
我也看到了,ippiRectStdDev
但手册指出此功能适用于积分图像 - 我看不出这在我的情况下如何应用。
有没有人有一个工作示例或更详细的手册?
c++ - 数组(向量)中大于某个值的元素的起始索引和结束索引
给定一个这样的数组:
数组长度可能大于 1,000。
如果元素的值不合适,如大于10,则应替换为合适的值。在这种情况下,通过线性插值计算适当的值。
例如:
Arr = {1, 3, 11, 2, 24, 13, 5....};
新数组应为:
NewArr = {1, 3, 3+(2-3)/2, 2, 2+(5-2)/3, 2+2*(5-2)/3, 5, ...}
为了做到这一点,我必须知道不合适元素的开始和结束索引。
开始和结束索引应为 (2,2) 表示“11”和 (4,5) 表示“24, 13”
我试过了for loop
。但效率不高。然后我搜索IPP API
并没有得到结果。:(
有更好的主意吗?
谢谢你的帮助, :)。
顺便说一句:IPP API
将是一个更好的选择。
更新:
示例代码:
更新2:感谢您的所有帮助。但基于这些问题的答案:Speed access a std::vector by iterator vs by operator[]/index? 为什么使用迭代器而不是数组索引?,两种形式(for vs iterator)的效率几乎相同。所以iterator
可能还不够好。
我通常使用SIMD
诸如IPP API
优化选项。但我没有弄明白,因为所有find
API 只获得指定元素的第一次出现。
如果有一天我弄清楚了,我会更新解决方案。:)
c++ - 在 c++ 中的高性能库之间切换
我正在编写一些针对各种平台的 C++ 代码。这包括 x86、x64 和 ARM。我目前在 x64 上使用 Intel IPP 和 MKL(用于 SSE),并希望为 ARM 添加一个 NEON 库。有没有一种标准的方法来围绕特定的库进行分支并且具有最小的依赖和大惊小怪?我目前正在使用 Visual Studio 2008 或 2012。
我最初的想法是围绕特定调用进行#ifdef 并测试 X86、X64、ARM 等。例如:
但这可能会变得非常混乱。我想知道标准方法是什么。例如,我希望 IPP 和 NEON 代码的单独项目更干净,并且只针对其中一个构建主项目?
除了支持之外,IDE 并不是非常重要——而且我怀疑我们将改用 Eclipse 之类的东西来进行 ARM 工作。