中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)頁版游戲大全在線玩網(wǎng)絡(luò)優(yōu)化有前途嗎

網(wǎng)頁版游戲大全在線玩,網(wǎng)絡(luò)優(yōu)化有前途嗎,注冊公司名字有沒有重復(fù)在哪可以查,網(wǎng)絡(luò)科技有限公司名字推薦CUDA程序錯(cuò)誤檢測 所有CUDA的API函數(shù)都有一個(gè)類型為cudaError_t的返回值&#xff0c;代表了一種錯(cuò)誤信息&#xff1b;只有返回cudaSuccess時(shí)&#xff0c;才是成功調(diào)用。 cudaGetLastError()用來檢測核函數(shù)的執(zhí)行是否出錯(cuò)cudaGetErrorString()輸出錯(cuò)誤信息 #include <stdi…
CUDA程序錯(cuò)誤檢測

所有CUDA的API函數(shù)都有一個(gè)類型為cudaError_t的返回值,代表了一種錯(cuò)誤信息;只有返回cudaSuccess時(shí),才是成功調(diào)用。

  • cudaGetLastError()用來檢測核函數(shù)的執(zhí)行是否出錯(cuò)
  • cudaGetErrorString()輸出錯(cuò)誤信息
#include <stdio.h>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include<math.h>
#include <malloc.h> 
#include <opencv2/opencv.hpp>
#include <stdlib.h>#define BLOCK_SIZE 1//圖像卷積 GPU
__global__ void sobel_gpu(unsigned char* in, unsigned char* out, const int Height, const int Width)
{int x = blockDim.x * blockIdx.x + threadIdx.x;int y = blockDim.y + blockIdx.y + threadIdx.y;int index = y * Width + x;int Gx = 0;int Gy = 0;unsigned char x0, x1, x2, x3, x4, x5, x6, x7, x8;if (x>0 && x<(Width-1) && y>0 && y<(Height-1)){x0 = in[(y - 1)*Width + (x - 1)];x1 = in[(y - 1)*Width + (x)];x2 = in[(y - 1)*Width + (x + 1)];x3 = in[(y)*Width + (x - 1)];x5 = in[(y)*Width + (x + 1)];x6 = in[(y + 1)*Width + (x - 1)];x7 = in[(y + 1)*Width + (x)];x8 = in[(y + 1)*Width + (x + 1)];Gx = (x0 + 2 * x3 + x6) - (x2 + 2 * x5 + x8);Gy = (x0 + 2 * x1 + x2) - (x6 + 2 * x7 + x8);out[index] = (abs(Gx) + abs(Gy)) / 2;}
}int main()
{cv::Mat src;src = cv::imread("complete004.jpg");cv::Mat grayImg,gaussImg;cv::cvtColor(src, grayImg, cv::COLOR_BGR2GRAY);cv::GaussianBlur(grayImg, gaussImg, cv::Size(3,3), 0, 0, cv::BORDER_DEFAULT);int height = src.rows;int width = src.cols;//輸出圖像cv::Mat dst_gpu(height, width, CV_8UC1, cv::Scalar(0));//GPU存儲空間int memsize = height * width * sizeof(unsigned char);//輸入 輸出unsigned char* in_gpu;unsigned char* out_gpu;cudaMalloc((void**)&in_gpu, memsize);cudaMalloc((void**)&out_gpu, memsize);cudaError_t error_code;dim3 threadsPreBlock(BLOCK_SIZE, BLOCK_SIZE);dim3 blocksPreGrid((width + threadsPreBlock.x - 1)/threadsPreBlock.x, (height + threadsPreBlock.y - 1)/threadsPreBlock.y);cudaMemcpy(in_gpu, gaussImg.data, memsize, cudaMemcpyHostToDevice);sobel_gpu <<<blocksPreGrid, threadsPreBlock>>> (in_gpu, out_gpu, height, width);error_code = cudaGetLastError();printf("Error: %s\n", cudaGetErrorString(error_code));printf("FILE: %s\n", __FILE__);printf("LINE: %d\n", __LINE__);printf("Error code: %d\n", error_code);cudaMemcpy(dst_gpu.data, out_gpu, memsize, cudaMemcpyDeviceToHost);cv::imwrite("dst_gpu_save.png", dst_gpu);//cv::namedWindow("src", cv::WINDOW_NORMAL);cv::imshow("src", src);cv::imshow("dst_gpu", dst_gpu);cv::waitKey();cudaFree(in_gpu);cudaFree(out_gpu);return 0;
}

在這里插入圖片描述在這里插入圖片描述

樊哲勇大牛的檢測CUDA運(yùn)行時(shí)錯(cuò)誤的宏函數(shù):

#pragma once
#include<stdio.h>#define CHECK(call)																\
do                                                                              \
{																				\const cudaError_t error_code = call;										\if (error_code != cudaSuccess)												\{																			\printf("CUDA Error:\n");												\printf("	File:	%s\n", __FILE__);									\printf("	Line:	%d\n",__LINE__);									\printf("	Error code: %d\n",error_code);								\printf("	Error text: %s\n", cudaGetErrorString(error_code));			\exit(1);																\}																			\
} while (0)																		

采用檢測CUDA運(yùn)行時(shí)錯(cuò)誤的宏函數(shù):

#include <stdio.h>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include<math.h>
#include <malloc.h> 
#include <opencv2/opencv.hpp>
#include <stdlib.h>#include "error.cuh"#define BLOCK_SIZE 1//圖像卷積 GPU
__global__ void sobel_gpu(unsigned char* in, unsigned char* out, const int Height, const int Width)
{int x = blockDim.x * blockIdx.x + threadIdx.x;int y = blockDim.y + blockIdx.y + threadIdx.y;int index = y * Width + x;int Gx = 0;int Gy = 0;unsigned char x0, x1, x2, x3, x4, x5, x6, x7, x8;if (x>0 && x<(Width-1) && y>0 && y<(Height-1)){x0 = in[(y - 1)*Width + (x - 1)];x1 = in[(y - 1)*Width + (x)];x2 = in[(y - 1)*Width + (x + 1)];x3 = in[(y)*Width + (x - 1)];x5 = in[(y)*Width + (x + 1)];x6 = in[(y + 1)*Width + (x - 1)];x7 = in[(y + 1)*Width + (x)];x8 = in[(y + 1)*Width + (x + 1)];Gx = (x0 + 2 * x3 + x6) - (x2 + 2 * x5 + x8);Gy = (x0 + 2 * x1 + x2) - (x6 + 2 * x7 + x8);out[index] = (abs(Gx) + abs(Gy)) / 2;}
}int main()
{cv::Mat src;src = cv::imread("complete004.jpg");cv::Mat grayImg,gaussImg;cv::cvtColor(src, grayImg, cv::COLOR_BGR2GRAY);cv::GaussianBlur(grayImg, gaussImg, cv::Size(3,3), 0, 0, cv::BORDER_DEFAULT);int height = src.rows;int width = src.cols;//輸出圖像cv::Mat dst_gpu(height, width, CV_8UC1, cv::Scalar(0));//GPU存儲空間int memsize = height * width * sizeof(unsigned char);//輸入 輸出unsigned char* in_gpu;unsigned char* out_gpu;cudaMalloc((void**)&in_gpu, memsize);cudaMalloc((void**)&out_gpu, memsize);dim3 threadsPreBlock(BLOCK_SIZE, BLOCK_SIZE);dim3 blocksPreGrid((width + threadsPreBlock.x - 1)/threadsPreBlock.x, (height + threadsPreBlock.y - 1)/threadsPreBlock.y);cudaMemcpy(in_gpu, gaussImg.data, memsize, cudaMemcpyHostToDevice);sobel_gpu <<<blocksPreGrid, threadsPreBlock>>> (in_gpu, out_gpu, height, width);CHECK(cudaMemcpy(dst_gpu.data, out_gpu, memsize*10, cudaMemcpyDeviceToHost));//增大size值  引起報(bào)錯(cuò)cv::imwrite("dst_gpu_save.png", dst_gpu);//cv::namedWindow("src", cv::WINDOW_NORMAL);cv::imshow("src", src);cv::imshow("dst_gpu", dst_gpu);cv::waitKey();cudaFree(in_gpu);cudaFree(out_gpu);return 0;
}

在這里插入圖片描述

http://www.risenshineclean.com/news/8651.html

相關(guān)文章:

  • 如何苗木網(wǎng)站建設(shè)全網(wǎng)推廣怎么做
  • 打開百度一下簡述搜索引擎優(yōu)化的方法
  • 嘉興秀洲區(qū)建設(shè)局網(wǎng)站推廣方式和推廣渠道
  • 深圳網(wǎng)站建設(shè) 工作室如何做宣傳推廣效果最好
  • 做推廣哪個(gè)網(wǎng)站最熱門百度推廣電話客服
  • 網(wǎng)站建設(shè) 化工大連seo網(wǎng)站推廣
  • 移動端電商網(wǎng)站百度網(wǎng)盤客服24小時(shí)電話人工服務(wù)
  • 給境外合法網(wǎng)站做數(shù)據(jù)優(yōu)化問題
  • 網(wǎng)站ui設(shè)計(jì)例子軟文廣告的案例
  • 專注番禺網(wǎng)站優(yōu)化網(wǎng)頁搜索快捷鍵是什么
  • 印度網(wǎng)站開發(fā)成本廣州頂正餐飲培訓(xùn)學(xué)校
  • 做360網(wǎng)站優(yōu)化快速排產(chǎn)品推廣方案ppt模板
  • 江蘇網(wǎng)站建設(shè)推廣高平網(wǎng)站優(yōu)化公司
  • 瑜伽網(wǎng)站設(shè)計(jì)推廣軟文范文
  • 如何添加網(wǎng)站 ico圖標(biāo)全球熱搜榜排名今日
  • 做寫字樓的網(wǎng)站有哪些河南seo網(wǎng)站多少錢
  • 昆明網(wǎng)站建設(shè)是什么意思福州seo技巧培訓(xùn)
  • html5 做手機(jī)網(wǎng)站seo公司怎么樣
  • 做分銷網(wǎng)站系統(tǒng)下載網(wǎng)站建立具體步驟是
  • 給個(gè)做的網(wǎng)站嗎人員優(yōu)化方案怎么寫
  • 建站記錄查詢?nèi)绾尉W(wǎng)絡(luò)推廣自己的產(chǎn)品
  • 佛山網(wǎng)頁網(wǎng)站制作百度發(fā)布信息的免費(fèi)平臺
  • 網(wǎng)站建設(shè)廴金手指花總壹柒電子商務(wù)主要學(xué)什么就業(yè)方向
  • 泉州網(wǎng)站設(shè)計(jì)找哪家山東關(guān)鍵詞網(wǎng)絡(luò)推廣
  • 重慶 網(wǎng)站開發(fā)東莞關(guān)鍵詞優(yōu)化軟件
  • 西安市政道橋建設(shè)公司網(wǎng)站sem是什么牌子
  • 做什么網(wǎng)站開發(fā)最簡單網(wǎng)站排名查詢工具
  • 寧波市住房和城鄉(xiāng)建設(shè)局網(wǎng)站上海百度推廣官方電話
  • 齒輪機(jī)械東莞網(wǎng)站建設(shè)技術(shù)支持seo搜索引擎優(yōu)化薪酬
  • 網(wǎng)站建設(shè)模式互聯(lián)網(wǎng)推廣怎么找渠道