以下问题的出现及解决都基于"WIN7+CUDA7.5". 问题描述:当我编译运行<GPU高性能编程CUDA实战>中第4章所给Julia实例代码时,出现了显示器闪动的现象,现象很快消失,并在窗口右下角弹出"显示器驱动已停止响应,并且已恢复"的提示,而最终并未得到Julia应有的计算结果,在命令行窗口中显示了相应错误信息. 问题解决:开始 > NVIDIA Corporation > Nsight Visual Studio Edition 4.…
▶ 使用CPU和GPU分别实现散列表 ● CPU方法 #include <stdio.h> #include <time.h> #include "cuda_runtime.h" #include "D:\Code\CUDA\book\common\book.h" #define SIZE (100*1024*1024) #define ELEMENTS (SIZE / sizeof(unsigned int)) #define HASH_E…
▶ 本书中用到的公用函数放到了头文件book.h中 #ifndef __BOOK_H__ #define __BOOK_H__ #include <stdio.h> #include <stdlib.h> // 自己加的 #include "cuda_runtime.h" // 自己加的 static void HandleError( cudaError_t err, const char *file, int line )//定义报错函数,通过传入的返回值和…
▶ 这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. ● 代码(已合并) #include <stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "D:\Code\CUDA\book\common\book.h" int main(void) { cudaDeviceProp prop; //放置设备属…
▶ cpu_bitmap.h #ifndef __CPU_BITMAP_H__ #define __CPU_BITMAP_H__ #include "gl_helper.h" struct CPUBitmap { unsigned char *pixels; int x, y; void *dataBlock; void (*bitmapExit)(void*); CPUBitmap( int width, int height, void *d = NULL ) { pixels =…
▶ 本章介绍了手动实现原子操作.重构了第五章向量点积的过程.核心是通过定义结构Lock及其运算,实现锁定,读写,解锁的过程. ● 章节代码 #include <stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "cuda.h" #include "D:\Code\CUDA\book\common\book.h&q…
▶ 本章介绍了线程并行,并给出四个例子.长向量加法.波纹效果.点积和显示位图. ● 长向量加法(线程块并行 + 线程并行) #include <stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "D:\Code\CUDA\book\common\book.h" #define N (33 * 1024) __global_…
▶ 本章介绍了多设备胸膛下的 CUDA 编程,以及一些特殊存储类型对计算速度的影响 ● 显存和零拷贝内存的拷贝与计算对比 #include <stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "D:\Code\CUDA\book\common\book.h" #define imin(a,b) (a<b?a:b) #…
▶ 本章介绍了线程块并行,并给出两个例子:长向量加法和绘制julia集. ● 长向量加法,中规中矩的GPU加法,包含申请内存和显存,赋值,显存传入,计算,显存传出,处理结果,清理内存和显存.用到了 tid += gridDim.x; 使得线程块可以读取多个下标,计算长于线程块数量的向量(例子中向量长度为32768,线程块数量为1024) #include <stdio.h> #include "cuda_runtime.h" #include "device_la…
▶ OpenGL与DirectX,等待填坑. ● basic_interop #include <stdio.h> #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "cuda.h" #include "cuda_gl_interop.h" #include "D:\Code\CUDA\book\common\…