当前位置: 首页 > news >正文

网站流量统计平台如何利用网站做demo

网站流量统计平台,如何利用网站做demo,上海市网,seo网站结构如何优化CUDA程序错误检测 所有CUDA的API函数都有一个类型为cudaError_t的返回值#xff0c;代表了一种错误信息#xff1b;只有返回cudaSuccess时#xff0c;才是成功调用。 cudaGetLastError()用来检测核函数的执行是否出错cudaGetErrorString()输出错误信息 #include stdi…CUDA程序错误检测 所有CUDA的API函数都有一个类型为cudaError_t的返回值代表了一种错误信息只有返回cudaSuccess时才是成功调用。 cudaGetLastError()用来检测核函数的执行是否出错cudaGetErrorString()输出错误信息 #include stdio.h #include cuda_runtime.h #include device_launch_parameters.h #includemath.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 (x0 x(Width-1) y0 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运行时错误的宏函数 #pragma once #includestdio.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运行时错误的宏函数 #include stdio.h #include cuda_runtime.h #include device_launch_parameters.h #includemath.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 (x0 x(Width-1) y0 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值 引起报错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.w-s-a.com/news/921242/

相关文章:

  • 磨床 东莞网站建设wordpress下载类主题系统主题
  • 免费学编程网站芜湖做网站都有哪些
  • 能发外链的网站门户网站网页设计规范
  • 网站建设所需人力南城区网站建设公司
  • 网站做图尺寸大小手机模板网站模板下载网站有哪些内容
  • 德阳市建设管理一体化平台网站做美食网站
  • 怎么做自己的推广网站2024年瘟疫大爆发
  • vps正常网站打不开linux网站建设
  • 福州网站快速排名在一个网站的各虚拟目录中默认文档的文件名要相同
  • 网站开发 流程图网站开发用哪个linux
  • 怎么用自己电脑做服务器发布网站吗seo门户网价格是多少钱
  • 备案网站可以做影视站网站400
  • 四川住房与城乡建设部网站注册登记
  • 网站建设第三方沈阳工程最新动态
  • 兰州做网站客户上海企业在线登记
  • 新乡公司做网站wordpress被大量注册
  • 小语种服务网站公众号平台建设网站
  • 免费做mc皮肤网站企业网站建设合同模板
  • 做网站可以申请个体户么网站的定位分析
  • jsp做的零食网站下载wordpress侧边栏折叠
  • 帝国网站单页做301南京旅游网站建设公司
  • 网站sem优化怎么做网站建设推广安徽
  • 比较好的室内设计网站潍坊网络科技
  • 南宁网站建设公设计联盟网站
  • 多个图表统计的网站怎么做百度推广费2800元每年都有吗
  • 连江县住房和城乡建设局网站企业类网站模版
  • 临沂seo整站优化厂家网站建设 大公司排名
  • 网站开发有哪些方式百度导航怎么下载
  • 网站认证免费视频直播网站建设方案
  • 瀑布流分享网站源代码下载网站构建的一般流程是什么