You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何CuPy(GPU)预处理图像耗时远超OpenCV(CPU)?

问题背景

以下代码分别使用OpenCV(CPU)和CuPy(GPU)实现图像预处理,但运行结果显示CuPy耗时远高于OpenCV,请问性能差异的成因是什么?

测试代码

import cv2
import numpy as np
import cupy as cp
import time


def op_image(image):
    start_time = time.time()
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image = cv2.resize(image, (640, 480))
    image_mean = np.array([127, 127, 127])
    image = (image - image_mean) / 128
    image = np.transpose(image, [2, 0, 1])
    image = np.expand_dims(image, axis=0)
    image = image.astype(np.float32)
    print("Opencv End time : ",time.time() - start_time)


def Cu_image(image):
    start_time = time.time()
    image = cp.array(image)
    image = cp.ascontiguousarray(image[:, :, ::-1])
    image = cp.resize(image, (640, 480,3))
    image_mean = cp.array([127, 127, 127])
    image = (image - image_mean) / 128
    image = cp.transpose(image, (2, 0, 1))
    image = cp.expand_dims(image, axis=0)
    image = cp.expand_dims(image, axis=0)
    image = image.astype(cp.float32)
    print("Cupy End time : ",time.time() - start_time)


image = cv2.imread("/home/nextbrain-ssd/Vision/cctv-server/assets/event_created_images/camera_0_9_509_2024-05-23T04:14:32.931834Z.jpg")
op_image(image=image)
image = cv2.imread("/home/nextbrain-ssd/Vision/cctv-server/assets/event_created_images/camera_0_9_509_2024-05-23T04:14:32.931834Z.jpg")
Cu_image(image=image)

运行输出

Opencv End time :  0.00825643539428711
Cupy End time :  0.10329556465148926

性能差异成因分析

  • 数据传输开销主导:CuPy需要先把CPU内存中的图像数据拷贝到GPU显存(cp.array(image)),这个跨设备数据传输的延迟远高于GPU本身的计算耗时。对于单张640×480的小图来说,传输成本完全盖过了GPU的计算优势。
  • 任务规模太小:GPU擅长处理大规模并行任务,单张小图的预处理计算量极小,GPU的并行计算能力根本无法发挥。反而CPU上的OpenCV针对这类小任务做了极致优化,执行效率更高。
  • OpenCV底层优化优势:OpenCV的cvtColor、resize等核心函数基于高度优化的汇编实现(如Intel IPP库),针对CPU架构做了指令级优化,单线程就能跑出极高效率。
  • CuPy代码存在冗余操作:对比OpenCV版本,CuPy多调用了一次cp.expand_dims;cp.resize的实现逻辑与OpenCV的resize不同,额外增加了计算开销;另外cp.ascontiguousarray会带来内存整理成本,而OpenCV的cvtColor直接输出连续内存数组,无需额外处理。

内容的提问来源于stack exchange,提问作者RajeshKumar S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:50:54