python大矩阵内存交换的问题

遇到问题记录(待解决):

  • 大矩阵(4960x8976)进行旋转90°时,耗时长。np.rot90()很快,但需要加个copy()后面才能调用,45ms cv2.transpose() + cv2.flip 39ms + 2ms
  • 调用cpp封装的so,传入img(u8指针);如果输入的img=np.rot90(img)则该进程就会阻塞(报错)。
  • 解决: 传入C程序的矩阵(指针)需要两个特点:align 、continuous,所以需要copy();将输入用 numpy.ctypeslibs进行定义而不是ctypes,就会报错;而用ctypes定义指针则不会报错,但该进程会被阻塞。
  • multiprocessing .shared_memory.SharedMemory 好用是好用,但对于二维数组 shm_img[:,:]=img[:,:] 同np.copyto(shm_img,img)比较慢,100ms了。
  • Queue()进行通信,加入大矩阵同样遇到慢的问题,强行让进程变慢了。
  • 多进程调用gpu时,子进程内初始化没问题。主进程初始化,子进程调用会出问题,即使加了设置"spawn"也会出错。还没试传参形式传递已初始化的类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值