问题标签 [npp]
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.
cuda - 带有暂存缓冲区的 NPP 函数不会填充输出值
我试图找到最大值的一些代码:
所有函数都返回 0(无错误)。但未计算输出值 max_。我尝试了一些其他需要暂存缓冲区并获得相同结果的统计函数。我使用 CUDA 6.5 和我的代码,例如 NPP 文档中关于使用带有暂存缓冲区的函数的示例有人有什么想法吗?
cuda - 非整数边容量的 NPP 图割
该nppiGraphcut_32s8u
函数适用于 32 位有符号整数边缘容量。在 CUDA 6.5 工具包中包含的 grabCut 示例中,它们只是Npp32f
转换为Npp32s
. 例如,从GrabcutUtil.cu
grabcutNPP 示例文件夹中:
哪里edge_weight
返回一个Npp32f
。他们是否按比例放大了他们的数字,以便边缘容量是大值,从而避免四舍五入误差?
c++ - cuda opencv 未定义对“nppiConvert_16u8u_C4R”的引用
我正在尝试运行基于 opencv 的简单 rgb 到灰度脚本并通过 cuda 运行它。执行计算的 C++ 脚本的标头链接以下 api opencv
:
我正在尝试使用以下makefile
逻辑对其进行编译:
我尝试了许多其他解决方案,例如 Compiling a basic opencv cuda 和Linking Cuda in C++ issue概述的解决方案。
当前错误:
我对此很陌生,因此不确定在哪里寻找解决此错误的方法。
lnppi
编辑: 1. 在添加 LIB 路径后,我在注释之后将选项添加到主目录(请参阅更新的 makefile 部分)
现在错误:
- 通过添加到 zlib 的链接
lz
c++ - CUDA NPP 功能启动不正确会损坏设备数据
我正在编写快速的 JPEG 读取代码,我将把它用作一个更大项目的一部分。我决定将 CUDA 和 NPP 一起用于该任务,因为 NPP 已经实现了所有编码和解码功能。一切正常,直到我尝试使用nppiDCTQuantInv8x8LS_JPEG_16s8u_C1R_NEW
函数运行逆 DCT。这似乎破坏了代码的完整性。运行 DCT 后,报告了几个 cudaFree 调用cudaErrorLaunchFailure
。使用 NSIGHT CUDA 调试器后,我可以看到启动 IDCT 函数报告CUDA Grid launch failed
错误。可能的原因是什么?如果我不使用 NSIGHT CUDA 调试器 IDCT 函数以NPP_NO_ERROR
,但仍会损坏设备指针。我附上了我认为相关的代码片段,但我可以根据要求提供更多。我有一种感觉,我可能在某些时候对指针感到困惑。不过,我已经花费了大量时间在 vs 调试器中检查和调试主机端内存。
实际IDCT部分:
释放霍夫曼表时报告错误:
销毁 CJPEGDeviceData 时报告的错误:
dct 计算的实际调用及其周围环境:
CJPEGDeviceData 类:
谁能帮助我了解发生了什么以及我做错了什么?即使我启动有问题的 IDCT 部分,cuda-memcheck 也不会报告任何错误,我只能在 VS 调试器中检测到错误。我相信读取文件本身可以正常工作,我已经对其进行了许多测试,因此初始数据应该没问题。问题始于设备数据。我还可以补充一点,在打开 IDCT 的情况下启动 CUDA 分析器会使应用程序崩溃并引发非零退出代码错误。否则它运行良好。
c++ - Nppi 颜色转换问题
我正在尝试使用 Nvidia 的 npp 库将 3 通道打包 rgb 的帧转换为 nv12。这是我到目前为止的代码:
它主要基于这个堆栈溢出问题,但我对其进行了调整以适合我的情况。作为旁注,frameToWrite.getSize()
计算如下:
getBytesPerPixel()
通常返回的地方3
。
最终我的问题是:
- 我应该如何从设备内存中检索转换后的图像数据?
- 我是否以正确的方式将未转换的图像数据传递给设备?
python - 如何从 python 调用 NVIDIA 性能基元?
有没有办法从NVIDIA 性能基元库 (NPP)调用python
?
opencv - tegra(Jetson TK1)的opencv是否在下面使用npp和openvx?
随 Linux 4 Tegra 提供的用于 Tegra 设备的 OpenCv 是否在下面使用 NPP 和 OpenVX?还是我必须自己进行此类优化?
任何对指向证明的链接的引用将不胜感激。
gpu - 使用 NVIDIA NPP 调整大小以精确到目标尺寸的正确方法是什么?
我正在尝试使用 NVIDIA NPP 来试验一些图像大小调整例程。我想调整到精确的尺寸。我一直在研究使用 NVIDIA NPP 调整图像大小,但它的所有调整大小函数都采用 X 和 Y 尺寸的比例因子,我看不到任何 API 采用直接目标尺寸。
例如,这是一个 API:
我意识到一种方法可能是找到目标维度的适当比例因子,但我们并不完全知道 API 如何根据比例因子决定目标 ROI(因为它是浮点数学)。我们可以反转 jpegNPP 样本中的计算来找到比例因子,但 API 本身并没有做出任何保证,所以我不确定它有多安全。任何想法有什么可能性?
作为一个附带问题,API 还接受两个参数,nXShift 和 nYShift,但只是说“x 方向的源像素偏移”。我不太清楚这里谈论的是什么转变。你有想法吗?
image - 用于 16 位图像的 CUDA NPP 中值滤波器
最终更新:已解决。WDDM 超时也是一个问题。从以下位置找到解决方案:WDDM timeout fix。谢谢罗伯特。
更新:感谢罗伯特指出过滤器的中心不是 0,0。不幸的是,如果过滤器增加,您发布的代码将对我造成破坏,例如 17x17。这可能是由于您没有考虑图像“侧面”的边框。无论如何,这是最新的代码,但仍然表现出与以前相同的问题......
我正在尝试为 29mp 图像计算中值滤波器。过滤器尺寸为 13x13。图像的宽度和高度如下所示。由于未知原因,以下代码会崩溃,我想问是否有人知道为什么?
我注意到的奇怪的事情:
nppiFilterMedian_16u_C1R() 发生错误。该函数本身返回无错误条件,但以下 cudaMemcpy() 会。没有过滤器, cudaMemcpy() 工作得很好。
此外,获取 16 位过滤器的缓冲区大小始终返回大小为 0。我测试了 8 位和 32 位,它们返回非零值...
我认为这可能是 NPPI 库的一个错误(?)。它似乎与尺寸有关(如果您使用减小图像的宽度/高度,它将适用于 13x13 过滤器尺寸)。但是,我的过滤器尺寸需要达到 31x31。
其他重要信息:Windows x64 应用程序、CUDA 运行时 7.5、NPP 版本 7.5。GPU 设备是 Quadro k2200(4GB 全局内存)。
cuda - Cuda,由 NPP 函数创建的两个流
我正在使用 Cuda 7.5 和 GeForce GTX 650 Ti 进行图像处理项目。我决定使用 2 个流,一个应用负责增强图像的算法,另一个应用独立于其余处理的算法。
我写了一个例子来说明我的问题。在此示例中,我创建了一个流,然后使用了 nppSetStream。
我调用了函数 nppiThreshold_LTValGTVal_32f_C1R 但在执行该函数时使用了 2 个流。
这里有一个代码示例:
这是我从 Nvidia Visual Profiler 得到的:image_width1344
如果我只设置一个流,为什么会有两个流?这会导致我的原始项目出现错误,所以我正在考虑切换到单个流。
我注意到这种行为取决于图像的大小,如果 srcWidth 和 srcHeight 设置为 1500,结果是:image_width1500。
为什么改变图像的大小会产生另一个流?