首页 > 其他分享 >DVPP问题汇总

DVPP问题汇总

时间:2024-09-05 21:02:40浏览次数:12  
标签:context Stream void 汇总 DVPP 问题 dvppChannelDesc Context 泄露

1. aclrtSetDevice 使用不当导致内存泄露问题

对于Atlas 推理系列产品(Ascend 310P处理器),调用本接口会隐式创建默认Context,在标准形态下,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。

参考网页:API参考-aclrtSetDevice

aclrtSetDevice

此接口需与aclrtResetDevice接口配套使用,以避免出现泄露。

实际使用中更建议用 Context,Context使用起来更灵活方便。

2.  acldvppChannelDesc 释放方式不当导致内存泄露问题

实际测试中发现,acldvppChannelDesc 的释放需要先切换到对应的设备,如以下:

void VpcUtils::release() {
    
    if(context_){
        aclrtSetCurrentContext(context_);
    
        if (dvppChannelDesc_) {
            (void)acldvppDestroyChannel(dvppChannelDesc_);
            (void)acldvppDestroyChannelDesc(dvppChannelDesc_);
            dvppChannelDesc_ = nullptr;
        }

        aclrtDestroyContext(context_);
    }
}

需要先做   aclrtSetCurrentContext(context_);  操作,否则会有内存泄露。

 

 

 

 

 


 

标签:context,Stream,void,汇总,DVPP,问题,dvppChannelDesc,Context,泄露
From: https://www.cnblogs.com/betterwgo/p/18398010

相关文章