cuda kernel并行探讨

在尝试使用CUDA进行图像取反操作时,虽然结果正确,但通过Nsight观察发现kernel的执行并非并行,而是串行进行。博主寻求帮助以解决CUDA多流并行计算的调度问题。
摘要由CSDN通过智能技术生成

图像取反,结果是正确的,想使用多流并行计算,但是使用Nsight 看调度是串行的,请问问题出在哪呢?

#include"base.h"

// 图像取反
__global__ void Not(uchar*dev_src, int width, int hight)
{

	int x = blockDim.x*blockIdx.x + threadIdx.x;
	int y = blockDim.y*blockIdx.y + threadIdx.y;

	if (x < width && y < hight)
	{
		dev_src[y*width + x] = 255 - dev_src[y*width + x];
	}

}



void test19_function()
{

	// 读取图片
	Mat img = imread("F://share//yibu//yibu//k_0.bmp");
	
	int img_row = img.rows;
	int img_col = img.cols;

	// 图像是三通道的
	size_t size = img_row*img_col * sizeof(uchar);

	uchar*dev_src = 0;

	const int streamnum = 3;

	cudaStream_t *streams = new cudaStream_t[streamnum];

	cudaEvent_t start, stop;

	CHECK(cudaEventCreate(&start));
	CHECK(cudaEventCreate(&stop));

	CHECK(cudaEventRecord(start,0));

	CHECK(cudaMalloc((void**)&dev_src, size * 3));

	fo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值