acl.init()后的python多线程执行问题
收藏回复举报
acl.init()后的python多线程执行问题
t('forum.solved') 已解决
发表于2024-10-30 21:20:43
0 查看

在一个python文件中执行了acl.init操作

def init_acl(self, device_id=0):

        acl.init()

        ret = acl.rt.set_device(device_id)

        if ret:

            raise RuntimeError(ret)

        context, ret = acl.rt.create_context(device_id)

        if ret:

            raise RuntimeError(ret)

        logger.debug('Init ACL Successfully')

        return context

在当前的python中执行acl推理没有问题

ret = acl.mdl.execute(self.model_id, self.load_input_dataset, self.load_output_dataset)

但当用ThreadPool启动线程进行推理时,推理的结果会完全错误

with ThreadPoolExecutor(max_workers=5) as executor: 

# 在线程池中执行任务

executor.submit(detect_processor.doProcessor, ss_path, dir_name, preid, rec_result, dalb)

这时所有的推理结果都不对。

应该怎么实现同一个om模型,在python里进行并行推理?

我要发帖子