IPP< = 7.1具有特殊的就地功能。
在IPP 8中,他们已被弃用:deprecation-summary
目前尚不清楚新的非现场功能是否也支持就地操作。
我的猜测是,对于某些函数,可以为src / dst传递相同的指针,但对于其他函数,它不是,但是没有记录。
答案 0 :(得分:3)
我有类似的问题,并将其发布在英特尔的开发人员专区。以下链接将带您到我的帖子和我从英特尔得到的答案:
http://software.intel.com/en-us/forums/topic/498093
以下是上述链接的简短引用:
IPP 8.1中的(将在2014年ww06上提供)弃用消息从所有ipps就地功能中删除(基于客户的反馈)。计划在不久的将来为ippi域做同样的事情。
希望你觉得这很有帮助(我做过)。
答案 1 :(得分:2)
以下是英特尔对deprecated functions的评论:
将删除就地功能:仅接受就地功能 一个输入和输出指针。通常是不合适的版本 提供相同的功能,但具有额外的灵活性 指定不同的输出缓冲区。
根据我的经验,所有使用已弃用的就地变体的异常函数都支持就地操作,pSrc
和pDst
可能指向相同的内存。
因此我的答案是:是的,IPP 8.0仍然支持就地操作,但没有很好地记录。
答案 2 :(得分:2)
以下是7.1中不推荐使用的list个函数,以及推荐的替代函数。您应该注意到非就地功能通常被建议作为其就地对应物的替代品。
这是一个论坛discussion,其中一位英特尔工程师通过设置src == dst确认可以使用非就地函数代替其就地函数。
但是,有一点需要注意。如果您使用的是IPP 7.0,编译器将发出弃用警告。但是,对于至少其中一些函数,使用src == dst方法会产生损坏的输出。直到7.1,这似乎没有完全实现。我亲自使用过滤器功能遇到了这个问题,并且在讨论中有一个question,尽管英特尔从未对此做出回应。令人沮丧的是,英特尔并没有更明确地记录这一变化。由此产生的错误很难诊断,很容易被完全忽略。捕获它们的唯一方法是通过比较两个函数的输出,很少有人愿意这样做。