Intel IPP 8.0是否支持就地操作?

时间:2013-08-14 08:39:49

标签: intel-ipp

IPP< = 7.1具有特殊的就地功能。

在IPP 8中,他们已被弃用:deprecation-summary

目前尚不清楚新的非现场功能是否也支持就地操作。

我的猜测是,对于某些函数,可以为src / dst传递相同的指针,但对于其他函数,它不是,但是没有记录。

以下是documentation

3 个答案:

答案 0 :(得分:3)

我有类似的问题,并将其发布在英特尔的开发人员专区。以下链接将带您到我的帖子和我从英特尔得到的答案:

http://software.intel.com/en-us/forums/topic/498093

以下是上述链接的简短引用:

  IPP 8.1中的

(将在2014年ww06上提供)弃用消息从所有ipps就地功能中删除(基于客户的反馈)。计划在不久的将来为ippi域做同样的事情。

希望你觉得这很有帮助(我做过)。

答案 1 :(得分:2)

以下是英特尔对deprecated functions的评论:

  

将删除就地功能:仅接受就地功能   一个输入和输出指针。通常是不合适的版本   提供相同的功能,但具有额外的灵活性   指定不同的输出缓冲区。

根据我的经验,所有使用已弃用的就地变体的异常函数都支持就地操作,pSrcpDst可能指向相同的内存。

因此我的答案是:是的,IPP 8.0仍然支持就地操作,但没有很好地记录。

答案 2 :(得分:2)

以下是7.1中不推荐使用的list个函数,以及推荐的替代函数。您应该注意到非就地功能通常被建议作为其就地对应物的替代品。

这是一个论坛discussion,其中一位英特尔工程师通过设置src == dst确认可以使用非就地函数代替其就地函数。

但是,有一点需要注意。如果您使用的是IPP 7.0,编译器将发出弃用警告。但是,对于至少其中一些函数,使用src == dst方法会产生损坏的输出。直到7.1,这似乎没有完全实现。我亲自使用过滤器功能遇到了这个问题,并且在讨论中有一个question,尽管英特尔从未对此做出回应。

令人沮丧的是,英特尔并没有更明确地记录这一变化。由此产生的错误很难诊断,很容易被完全忽略。捕获它们的唯一方法是通过比较两个函数的输出,很少有人愿意这样做。