请问 我在做对图像的归一化的处理,要求图像数据的格式必须是float型,其中要用到求出像素值的最大值Max最小值Min即他们之间的差Max-Min,我先编写了一个kernel函数,求出每个块的最大最小值,又编写了一个kernel函数做扫尾工作求出总的最大最小值,然后有编写了一个kernel函数来对图像进行归一化处理,现在已经得到最后的正确结果,现在的问题是能不能将这三个kernel函数合并成一个kernel函数,因为数据时float型无法用原子函数,我的想法是能不能将第二个做扫尾工作的kernel函数设定为device类型在kernel函数中调用,这样就能将三个kernel函数合并成一个kernel函数了,请问device类型的函数与扫尾的那个(也就是第二个kernel函数)相比较性能会不会很差。
如果这样做行不通,版主对将这三个kernel合并有好的意见吗
__global__ void Maxkernel(float*dev_Img,int width,int height,float*dev_Max,float*dev_Min)
dev_Img是输入的图像数据,float*dev_Max,float*dev_Min是每一个block的最大最小值
__global__ void MaxMinkernel(float*dev_Max,float*dev_Min,int size,float*dev_C_Max,float*dev_C_Min)
float*dev_Max,float*dev_Min是每一个block的最大最小值,float*dev_C_Max,float*dev_C_Min是最后的图像的最大最小值
__global__ void normlize(float*dev_Img,int width,int height,float*dev_C_Max,float*dev_C_Min,float*Norm_Img)
dev_Img是输入的图像数据,规范化结果float*Norm_Img
|