CUDA零基础
吃我老猪一钉耙
这个作者很懒,什么都没留下…
展开
-
炼数成金CUDA视频教程——第三课2——学习笔记
/* * 源代码来自 炼数成金教程 * 给出任意一个一维数组 * 新数组中每个元素都等于源数组中位置排在它前面的所有元素的和 * */#include #includeusing namespace std;__global__ void scan(float *d_out, float *d_in){ int idx = threadIdx.x + blockIdx.x *原创 2017-11-10 12:42:47 · 372 阅读 · 0 评论 -
读取多个CSV并将结果传送到GPU内核函数
/* * ReadCSV.h * Created on: Nov 27, 2017 * Author: zlf */#ifndef IMAGE_MTF_H_#define IMAGE_MTF_H_void my_ReadSingleCSV(char *path, double **arr2, int ROWS, int COLS);void my_ReadMul原创 2017-12-19 14:34:14 · 468 阅读 · 0 评论 -
CUDA并行求函数最值
#include#include #include #include #include using namespace std;#define dimGridx 10#define dimGridy 10#define dimGridz 10#define ROWS 70*dimGridx*dimGridy*dimGridz //#define COLS原创 2017-12-27 15:00:10 · 832 阅读 · 0 评论 -
CUDA内存拷贝
1、cudaMemcpy() cudaMalloc() //线性内存拷贝1 //线性内存拷贝2 cudaMalloc((void**)&dev_A, data_size);3 cudaMemcpy(dev_A, host_A, data_size, cudaMemcpyHostToDevice);2、cudaMemcpy2D()cudaMallocPitch() //线性内存转载 2017-12-18 15:50:35 · 231 阅读 · 0 评论 -
printf in CUDA kernel 函数
摘自《cuda-c-programming-guide》B.17. Formatted Outputhttp://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#formatted-output格式化输出仅由计算能力2.x或更高的设备支持。int printf(const char *format[, arg,转载 2017-12-07 08:01:06 · 697 阅读 · 0 评论 -
三十分钟理解:双调排序Bitonic Sort,适合并行计算的排序算法
双调排序是data-independent的排序, 即比较顺序与数据无关的排序方法, 特别适合做并行计算,例如用GPU、fpga来计算。1、双调序列在了解双调排序算法之前,我们先来看看什么是双调序列。 双调序列是一个先单调递增后单调递减(或者先单调递减后单调递增)的序列。2、Batcher定理将任意一个长为2n的双调序列A分为等长的两半X和Y,将X中的元素与Y中的元素一一按原序比较转载 2017-12-07 07:10:43 · 383 阅读 · 0 评论 -
CUDA 做排列组合
#include #include #include #include #include using namespace std;#define ROWS 1024/6*65535#define COLS 6#define CHECK(res) if(res!=cudaSuccess){exit(-1);}__global__ void Kerneltest(int *原创 2017-11-23 10:17:10 · 374 阅读 · 0 评论 -
cudaMallocPitch
#include "cuda_runtime.h"#include "device_launch_parameters.h"#include "device_functions.h"#include #include #define W 2#define H 2// 核函数__global__ void kernel(float* devPtr, size_t pitch)原创 2017-12-14 13:22:11 · 472 阅读 · 1 评论 -
CUDA 数据分为大小两组
//#include "cuda_runtime.h"#include "device_launch_parameters.h"#include "device_functions.h"#include typedef struct __align__(128) qsortAtomicData_t{ volatile unsigned int lt_offset; // C原创 2017-12-12 01:00:37 · 588 阅读 · 0 评论 -
CUDA排列组合整数
#include #include #include #include #include using namespace std;#define ROWS 80*100*100*100#define COLS 6#define CHECK(res) if(res!=cudaSuccess){exit(-1);}__global__ void Kerneltest(dou原创 2017-12-10 09:53:29 · 432 阅读 · 0 评论 -
CUDA并行排序(1)——双调排序(unsigned int型数据)
#include #includeusing namespace std;#define CHECK(res) if(res!=cudaSuccess){exit(-1);}__global__ void helloCUDA(unsigned *indata, unsigned int len){ //在核函数内部定义的变量,没有 __shared__ 都是寄存器变量 //,每一个原创 2017-12-08 18:07:10 · 1299 阅读 · 0 评论 -
CUDA并行排序(4)——双调排序(二维double型数据)
#include #include#include#include using namespace std;#define CHECK(res) if(res!=cudaSuccess){exit(-1);}__global__ void helloCUDA(double **dp_out_params, unsigned int len){ //在核函数内部定义的变量,没有 _原创 2017-12-09 08:40:18 · 904 阅读 · 1 评论 -
炼数成金CUDA视频教程——第三课1——学习笔记
/*** * gputimer.h 源程序来自炼数成金教程 * ***/#ifndef __GPU_TIMER_H__#define __GPU_TIMER_H__struct GpuTimer{ cudaEvent_t start; cudaEvent_t stop; GpuTimer() { cudaEve原创 2017-11-07 21:24:23 · 545 阅读 · 0 评论 -
CUDA编程——打印显卡属性
/*** *打印显卡属性 *2017-11-8 * ***/#includeusing namespace std;int main(){ int deviceCount; cudaGetDeviceCount(&deviceCount); //Returns in *deviceCount the number of devices cout<<"de原创 2017-11-08 15:14:35 · 1069 阅读 · 0 评论 -
在GPU核函数中,为什么数值型变量可以和数组型变量相互赋值, CPU中不可以
/* * 源程序来自于 炼数成金教程 * 在GPU核函数中,为什么数值型变量可以和数组型变量相互赋值, CPU中不可以 * * */#include using namespace std;__global__ void global_scan(float* d_out,float* d_in){ int idx = threadIdx.x; float out = 0.0原创 2017-11-10 07:27:16 · 439 阅读 · 0 评论 -
cuda和driver版本对应关系
NVIDIA CUDA Toolkit Release Notes原创 2019-07-24 09:25:06 · 2923 阅读 · 0 评论