CUDA
Scott f
这个作者很懒,什么都没留下…
展开
-
【thrust库】thrust::scatter 和 thrust::gather
gather与scatter正好相反:scatter是顺序输入根据map确定撒点输出位置。gather是根据map确定输入元素的位置,输出是按顺序的。如图:具体可以查看https://blog.csdn.net/seamanj/article/details/82976687图片也是从这里获取的。...原创 2019-11-15 09:35:51 · 833 阅读 · 0 评论 -
CUDA 块间的同步
panda1234lee大神已经讲的很全面,https://blog.csdn.net/panda1234lee/article/details/88294382但是有一些要注意,有些情况可能会出现死锁。由于多个block被分配到不同SM中进行运行,并且在单个SM中只有此block全部运行完之后,才会去调入剩余的block进行计算。注意: 一个SM只有当前block运行完才调新的blo...原创 2019-10-19 15:52:12 · 1491 阅读 · 2 评论 -
CUDA学习-cdp四叉树实现(预备知识)
一幅如图2(a)所示的二进制图片常常会用一个二进制矩阵来表示。所谓二进制矩阵是指矩阵中的每一个数不是0就是1。图2(b)展示图2(a)用二进制矩阵表示的情况。图2:(a)二进制图片(b)图片的矩阵表示(c)四分树划分(d)四分树表示为了保存图2(b)这样的矩阵,经常使用四分树来完成。对于一个N * N的矩阵,N <= 512且N = 2^i(i为正整数),如果这个矩阵中的数不全一...原创 2020-02-16 17:09:32 · 529 阅读 · 0 评论 -
CUDA学习-atomicAdd的理解
再cdp快速排序的文章里有提到atomicAdd函数是先赋值后进行加法计算的,这里直接贴上它的实现函数便于更加深刻的理解。这个代码来自官方文档:https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.htmlatomicAdd实际是调用atomicCAS函数,atomicSub、atomicMax等函数都是如此,了解一个就...原创 2019-05-24 19:09:30 · 12693 阅读 · 0 评论 -
CUDA学习-cdp快排实现(一次快排)
cdp快排实现(预备知识):https://blog.csdn.net/shungry/article/details/90520554理解了快排的主要原理就,接下来通过官方例子进行进一步的理解。为了更好的进行理解,把官方例子cdpAdvancedQuicksort拆解出一次快排的例子。__global__ void qsort_warp(unsigned *indata, ...原创 2019-05-24 18:51:38 · 2656 阅读 · 3 评论 -
CUDA学习-cdp快排实现(预备知识)
在用gpu实现快排之前,先回顾一下在用cpu进行快速排序的方法:void QuickSort(int array[], int start, int last){ int i = start; int j = last; int temp = array[i]; if (i < j) { while (i < j) ...原创 2019-05-24 17:41:13 · 1024 阅读 · 0 评论 -
CUDA学习(四)-整体结构
本文参考:《CUDA Programming Guides》,《Professional CUDA C Programming》正文:整体结构将主要分为逻辑结构,物理结构两个方面进行理解:首先一定要对怎么cpu与gpu异构模型有一定的了解,CPU 与 GPU通过中间的PCI总线进行连接和传输。根据前文NVCC的编译过程,我们可以了解到,一个.cu文件经过编译之后会更具不同的硬件转化为其...原创 2019-05-09 22:21:14 · 890 阅读 · 0 评论 -
CUDA学习(一)-NVCC的编译过程
正文:NVCC的编译过程总体可以用一个图进行描述:NVCC的编译过程分为离线编译和即时编译两部分组成:离线编译(绿色虚线框内):CUDA源程序(即xxx.cu文件)在编译前的预处理会被分为主机端代码和设备段代码(即图中的左右分支):1.如图右分支:在设备端代码会被编译成ptx文件(可以看作是用于设备端的汇编文件)或是直接可运行的二进制文件xxx.cubin,然后将起.ptx...原创 2019-05-07 16:43:29 · 6779 阅读 · 0 评论 -
CUDA学习(三)-NVCC的分散编译
nvcc编译过程第一篇:https://blog.csdn.net/shungry/article/details/89715468nvcc编译过程第二篇:https://blog.csdn.net/shungry/article/details/89788342正文:nvcc的分散编译必须在CUDA5.0版本之后才支持,在此之前是不支持的。也就是说以前的版本一贯支持单独的主机代码的编...原创 2019-05-07 16:43:44 · 2145 阅读 · 0 评论 -
CUDA学习(二)-NVCC的编译过程及命令
nvcc编译过程第一篇:https://blog.csdn.net/shungry/article/details/89715468正文:编译流程(补充)以我mytest.cu为例子,输入以下命令:nvcc --cuda .\mytest.cu -keep 先解释里面命令的含义,--cuda/-cuda是将.cu文件编译成一个.cu.cpp.ii的文件;--keep/-k...原创 2019-05-03 20:40:59 · 17552 阅读 · 0 评论