CUDA
黑帽子和猫
不要总当机会到来时,你才唏嘘“哎呀,那时我怎么怎么样就好。。。”,你已经错过很多次,记住这是最后一次
展开
-
如何写出正确CUDA程序(持续更新中)
本文不谈CUDA优化,只谈如何正确写出CUDA程序,先写对,再说优化。最近写CUDA程序也是断断续续的,经常程序写完了需要很长的时间调试,各种错误,调试的方法也是简单的printf(),目前没找到更好的调试方法,如果有更好的办法的化希望告知。 昨天总结了下为什么写的CUDA程序总是出错(就先别说优化呢?写对再再谈别的吧),总结出一些心得和经验(算是经验)吧,结合例子看吧。首先谈谈调试方法吧,目前我原创 2017-05-01 14:56:28 · 3172 阅读 · 1 评论 -
CUDA-计时
kernel计时,记录,以后需要就直接过来抄了。cudaEvent_t start,stop;cudaEventCreate(&start);cudaEventRecord(start,NULL);//kernel计算kernel<<<>>>();cudaEventRecord(stop,NULL);cudaEventSynchronize(stop);float msecTotal =原创 2017-05-02 15:42:01 · 325 阅读 · 0 评论 -
CUDA性能优化----kernel调优(nvprof工具的使用)
见 http://blog.163.com/wujiaxing009@126/blog/static/71988399201701310151777?ignoreua主要用nvprof评价性能,主要三点。 occupancy nvprof --metrics achieved_occupancy ./a.outgld_throughputnvprof --metrics gld_throughp转载 2017-05-11 16:55:13 · 4500 阅读 · 0 评论 -
在CUDA C/C++中如何衡量代码性能
转载自 https://segmentfault.com/a/1190000007540468转载 2017-05-11 16:37:17 · 385 阅读 · 0 评论 -
CUDA编程的错误处理
转载于CUDA编程的错误处理关于错误处理无论是基于CPU的编程还是基于GPU的编程,当我们调用了一个API运行程序产生了错误,就会导致程序运行结果有悖于理论结果,甚至导致程序崩溃。因此,错误的检测和错误的处理在编程中是极为重要的。当我们能够定位错误的原因,错误的纠正才能更快更准确。Linux C系统编程错误处理我们来回顾一下在Linux系统编程中的错误处理(基于CPU)。在Linux系统编程中,错误转载 2017-04-21 01:04:37 · 15354 阅读 · 0 评论 -
CUDA Pro Tip: Increase Performance with Vectorized Memory Access
#include <iostream> #include <cuda_runtime.h>#include <cuda_occupancy.h原创 2017-04-17 11:24:23 · 563 阅读 · 0 评论 -
CUDA提供的函数评估Occupancy
#include <iostream> #include <cuda_runtime.h>#include <cuda_occupancy.h原创 2017-04-15 18:06:39 · 1477 阅读 · 0 评论 -
CUDA Pro Tip:Write Flexible Kernels with Grid-Stride Loops
见 CUDA Pro Tip:Write Flexible Kernels with Grid-Stride Loops转载 2017-04-15 16:12:22 · 723 阅读 · 1 评论 -
规约算法-reduction
CUDA Samples上的例子,可是那个封装的优点太复杂,不适合初学者看,按照上面的方法实现了一下。如下#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <math.h>#include "book.h"#define SIZE 81920000#define THREAD_NUM 512__global_原创 2017-05-01 17:46:05 · 4680 阅读 · 0 评论 -
CUDA程序阻塞
今天写一个程序,cuda的kernel竟然阻塞呢,什么情况? 后来胡思乱想了一大堆, ,错误程序如下for (int i=tid; i<col_size; tid+=32) ...原来是写错程序遇到死循环了,一写程序一堆错。。哎,正确的如下for (int i=tid; i<col_size; i+=32) ...程序出错的时候, 建议在分配任务的时候画图,把block,thr原创 2017-05-01 17:41:12 · 1236 阅读 · 0 评论 -
CUDA:向量化加载提升性能
转载自 https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-increase-performance-with-vectorized-memory-access/转载 2017-05-04 10:44:27 · 1165 阅读 · 0 评论