【CUDA 基础】3.5 展开循环】的更多相关文章

title: [CUDA 基础]3.5 展开循环 categories: - CUDA - Freshman tags: - 展开归约 - 归约 - 模板函数 toc: true date: 2018-04-19 21:02:08 Abstract: 本文介绍循环展开技术,在归约的基础上继续加速. Keywords: 展开归约,归约,模板函数 开篇废话 博客从CSDN那边截流了一些流量,现在网站访问突然增多到让我有点不适应,于是,想想还是别总盯着流量看吧,注意文章质量,同时保证一定的更新,从数学…
title: [CUDA 基础]6.1 流和事件概述 categories: - CUDA - Freshman tags: - 流 - 事件 toc: true date: 2018-06-10 21:45:15 Abstract: 本文介绍CUDA中流和事件的理论描述. Keywords: 流,事件 开篇废话 今天没废话,废话太多影响效率? 前面几章我们一直围绕GPU设备展开,我们的代码除了在核函数的配置的部分研究过主机端执行的代码,其他部分基本都是在设备代码上进行的,这一章我们就从主机端来…
title: [CUDA 基础]5.3 减少全局内存访问 categories: - CUDA - Freshman tags: - 共享内存 - 归约 toc: true date: 2018-06-04 19:47:29 Abstract: 本文介绍使用共享内存进行归约,并比较全局内存归约与共享内存归约之间的性能差距 Keywords: 共享内存,归约 开篇废话 逻辑是非常重要的,一旦你学会了逻辑,很多假的东西你可以轻松的识别出来,这会使你更加强大而不会被任何人或者组织洗脑. 废话少说,开始…
title: [CUDA 基础]5.1 CUDA共享内存概述 categories: - CUDA - Freshman tags: - CUDA共享内存模型 - CUDA共享内存分配 - CUDA共享内存访问 - CUDA共享内存配置 - CUDA共享内存同步 toc: true date: 2018-06-01 17:46:23 Abstract: 本文为CUDA内存的概述,介绍共享内存的模型,分配,访问,配置,同步等内容 Keywords: 模型,分配,访问,配置,同步 开篇废话 这里首先…
title: [CUDA 基础]6.2 并发内核执行 categories: - CUDA - Freshman tags: - 流 - 事件 - 深度优先 - 广度优先 - 硬件工作队列 - 默认流阻塞行为 toc: true date: 2018-06-18 22:04:08 Abstract: 本文介绍内核的并发执行,以及相关的知识 Keywords: 流,事件,深度优先,广度优先,硬件工作队列,默认流阻塞行为 开篇废话 没有废话,继续前面的内容,上文中我们说到了流,事件和同步等的概念,以…
title: [CUDA 基础]5.2 共享内存的数据布局 categories: - CUDA - Freshman tags: - 行主序 - 列主序 toc: true date: 2018-06-02 21:01:03 Abstract: 本文主要研究几个关于共享内存的例子,以此来了解共享内存的性质,为我们的核函数加速 Keywords: 行主序,列主序,填充与无填充,从线程索引体映射数据元素 开篇废话 同一个东西,A花大工夫做到极致,成本100,售价200:C模仿A的做法快速的通过仿制…
title: [CUDA 基础]3.6 动态并行 categories: - CUDA - Freshman tags: - 动态并行 - 嵌套执行 - 隐式同步 toc: true date: 2018-04-24 20:57:48 Abstract: 本文介绍CUDA动态并行--在设备上运行时的网格启动新的子网格 Keywords: 动态并行,嵌套执行 动态并行 本文作为第三章CUDA执行模型的最后一篇介绍动态并行,书中关于动态并行有一部分嵌套归约的例子,但是我认为,这个例子应该对我们用途不…
- title: [CUDA 基础]3.4 避免分支分化 categories: - CUDA - Freshman tags: - 规约问题 - 分支分化 toc: true date: 2018-04-17 23:32:55 Abstract: 介绍规约问题中的分支分化问题 Keywords: 规约问题,分支分化 此篇有些结果和参考书中结果相反,需要更深入的技术才能解决 开篇废话 我坚持写博客是因为我上次最困惑最难过的那段时间通过写博客改变了我的非常不好的情况,所以我认为写些东西梳理自己的思…
title: [CUDA 基础]2.3 组织并行线程 categories: CUDA Freshman tags: Thread Block Grid toc: true date: 2018-03-09 21:00:38 Abstract: 本文介绍CUDA模型中的线程组织模式 Keywords: Thread,Block,Grid 开篇废话 一天写两段废话也是有点累了,天天写废话,后面可以开个系列叫做废话.写一句吧,做研究别有民科精神就好,用自己的理论A证明自己的理论B,在用理论B证明理论…
一.GPU简介 1985年8月20日ATi公司成立,同年10月ATi使用ASIC技术开发出了第一款图形芯片和图形卡,1992年4月ATi发布了Mach32图形卡集成了图形加速功能,1998年4月ATi被IDC评选为图形芯片工业的市场领导者,但那时候这种芯片还没有GPU的称号,很长的一段时间ATi都是把图形处理器称为VPU,直到AMD收购ATi之后其图形芯片才正式采用GPU的名字. NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念.GPU使显卡削减了对CPU…
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 while...else 1. 循环语句 循环这种概念很重要,因为它是让计算机自动完成重复工作的常见方式之一. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次 在Python中,有两种循环: for循环 和 while循环: 两者的相同点在于都能循环做一件重复的事情:…
当要对一个大数组进行循环时,通常会通过局部变量缓存数组长度来提高性能,例: for(var i=0,len=arr.len;i<len;i++){} 光是缓存数组长度或使用倒序遍历来减少判断外,另一个优化手段就是减少循环次数,减少循环次数使用的是duff's  device算法,算法原理如下: 通过将 values 数组中元素个数除以 8 来计算出循环需要进行多少次迭代.然后使用取整的上限函数确保结果是整数.如果完全根据除 8 来进行迭代,可能会有一些不能被处理到的元素,这个数量保存在 star…
title: [CUDA 基础]6.5 流回调 categories: - CUDA - Freshman tags: - 流回调 toc: true date: 2018-06-20 21:56:18 Abstract: 本文介绍流回调 Keywords: 流回调 流回调 流回调是一种特别的技术,有点像是事件的函数,这个回调函数被放入流中,当其前面的任务都完成了,就会调用这个函数,但是比较特殊的是,在回调函数中,需要遵守下面的规则 回调函数中不可以调用CUDA的API 不可以执行同步 流函数有…
title: [CUDA 基础]6.3 重叠内和执行和数据传输 categories: - CUDA - Freshman tags: - 深度优先 - 广度优先 toc: true date: 2018-06-20 20:10:09 Abstract: 本文介绍如何利用流的重叠来隐藏主机到设备的数据传输延迟 Keywords: 深度优先,广度优先 开篇废话 热烈庆祝上证跌破3000点.如果股市是一个国家经济最好的衡量标准之一的话,我们的中国梦该醒醒了. 前面一节我们主要研究多个内核在不同流中的…
title: [CUDA 基础]6.0 流和并发 categories: - CUDA - Freshman tags: - 流 - 事件 - 网格级并行 - 同步机制 - NVVP toc: true date: 2018-06-10 20:21:37 Abstract: 本文是第六章的概述,本章也是Freshman的最后一个章节. Keywords: 流,事件,网格级并行,同步机制,NVVP 开篇废话 本文是Freshman系列的最后一篇,考虑到接下来要说的是比较高级的内容,所以把其划分到下…
title: [CUDA 基础]5.6 线程束洗牌指令 categories: - CUDA - Freshman tags: - 线程束洗牌指令 toc: true date: 2018-06-06 19:53:12 Abstract: 本文介绍线程束洗牌指令的用法 Keywords: 线程束洗牌指令 开篇废话 赶紧写博客,少说废话. 前面介绍了共享内存,常量内存,只读内存的使用,今天我们来研究一个比较特殊的机制,名字也很特殊,叫做线程束洗牌指令. 支持线程束洗牌指令的设备最低也要3.0以上,…
title: [CUDA 基础]5.4 合并的全局内存访问 categories: - CUDA - Freshman tags: - 合并 - 转置 toc: true date: 2018-06-04 21:34:22 Abstract: 本文介绍使用共享内存进行矩阵转置以减少内存的交叉访问 Keywords: 合并,转置 开篇废话 没废话,看以前的废话感觉自己像个傻瓜..就像以后看我正在写的文字一样. 还记得我们矩阵转置的例子么,在全局内存部分介绍的:4.4核函数可达到的带宽 在4.4中我…
title: [CUDA 基础]5.0 共享内存和常量内存 categories: - CUDA - Freshman tags: - 共享内存 - 常量内存 toc: true date: 2018-06-01 16:46:49 Abstract: 本文是第五章关于CUDA共享内存和常量内存的概述 Keywords: 共享内存,常量内存 开篇废话 本文是CUDA第五章的概论,来给出本章的大概思路,文章短小,不说废话. 共享内存和常量内存 在本章中,我们要学习: 数据在共享内存中的安排 二维共享…
title: [CUDA 基础]4.4 核函数可达到的带宽 categories: - CUDA - Freshman tags: - 带宽 - 吞吐量 - 矩阵转置 toc: true date: 2018-05-13 12:08:02 Abstract: 本文通过矩阵转置这一个例子,调整,优化核函数,使其达到最优的内存带宽 Keywords: 带宽,吞吐量,矩阵转置 开篇废话 下面是废话,与本文知识无关,可以直接跳到下面红字处开始本文知识的学习. 废话继续,这两天没更新博客了,上一篇是转发的…
title: [CUDA 基础]4.5 使用统一内存的向量加法 categories: - CUDA - Freshman tags: - 统一内存 - Uniform Memory toc: true date: 2018-05-14 17:24:55 Abstract: 使用统一内存的CUDA程序--向量加法 Keywords: 统一内存,Uniform Memory 开篇废话 本文太短,不说废话. 本文是前面关于统一内存的补充 参考:https://face2ai.com/CUDA-F-4…
title: [CUDA 基础]4.3 内存访问模式 categories: - CUDA - Freshman tags: - 内存访问模式 - 对齐 - 合并 - 缓存 - 结构体数组 - 数组结构体 toc: true date: 2018-05-03 22:08:07 Abstract: 本文介绍内存的访问过程,也就是从应用发起请求到硬件实现的完整操作过程,这里是优化内存瓶颈的关键之处,也是CUDA程序优化的基础. Keywords: 内存访问模式,对齐,合并,缓存,结构体数组,数组结构…
title: [CUDA 基础]4.2 内存管理 categories: - CUDA - Freshman tags: - CUDA内存管理 - CUDA内存分配和释放 - CUDA内存传输 - 固定内存 - 零拷贝内存 - 统一虚拟寻址 - 统一内存寻址 toc: true date: 2018-05-01 21:39:47 Abstract: 本文主要介绍CUDA内存管理,以及CUDA内存模型下的各种内存的特点. Keywords: CUDA内存管理,CUDA内存分配和释放,CUDA内存传…
title: [CUDA 基础]4.1 内存模型概述 categories: - CUDA - Freshman tags: - CUDA内存模型 - CUDA内存层次结构 - 寄存器 - 共享内存 - 本地内存 - 常量内存 - 纹理内存 - 全局内存 toc: true date: 2018-04-28 22:28:08 Abstract: 本文介绍CUDA编程的内存模型个概述,主要讲解CUDA包含的几种内存,以及各种内存的主要特点和用途,这篇作为内存部分地图一样,指导我们后面的写作和学习.…
title: [CUDA 基础]4.0 全局内存 categories: - CUDA - Freshman tags: - 全局内存 - CUDA内存模型 - CUDA内存管理 - 全局内存编程 - 全局内存访问模式 - 全局内存数据布局 - 统一内存编程 - 提高内存吞吐量 toc: true date: 2018-04-28 09:43:50 Abstract: 本文为学习CUDA编程的第四章的概要,主要介绍第四章研究的对象 Keywords: 全局内存,CUDA内存模型,CUDA内存管理…
title: [CUDA 基础]3.3 并行性表现 categories: - CUDA - Freshman tags: - nvprof toc: true date: 2018-04-15 21:17:52 Abstract: 本文主要通过nvprof工具来分析核函数的执行效率(资源利用率) Keywords: nvprof 开篇废话 继续更新CUDA,前面为了加速概率论的学习停了一段CUDA,从今天开始继续CUDA和数学分析的更新,每一篇都写一点废话就相当于自己的日记了,之前很佩服那些写…
title: [CUDA 基础]3.2 理解线程束执行的本质(Part I) categories: CUDA Freshman tags: 线程束分化 CUDA分支 toc: true date: 2018-03-14 21:31:16 Abstract: 本文介绍CUDA执行模型最核心的部分,线程束的执行实质第一部分 Keywords: CUDA分支,线程束分化 开篇废话 我们前面已经大概的介绍了CUDA执行模型的大概过程,包括线程网格,线程束,线程间的关系,以及硬件的大概结构,例如SM的大…
title: [CUDA 基础]3.1 CUDA执行模型概述 categories: CUDA Freshman tags: CUDA SM SIMT SIMD Fermi Kepler toc: true date: 2018-03-12 23:20:41 Abstract: 本文介绍CUDA执行模型,只比硬件高一层的抽象 Keywords: CUDA SM,SIMT,SIMD,Fermi,Kepler 开篇废话 今天晚上本来都该睡觉了,但是还是决定把这篇文章写出来,毕竟昨天就没写. 这一篇开…
title: [CUDA 基础]2.4 设备信息 categories: CUDA Freshman tags: CUDA Device Information toc: true date: 2018-03-10 23:16:11 Abstract: 本文只介绍一个功能,如何获取设备(一个或多个)信息 Keywords: CUDA Device Information 开篇废话 今天跑了一天,然后晚上写了今天的代码,虽然都是printf的内容,用到的api就那么一两个,但是我还是自己打了一遍,…
title: [CUDA 基础]0.0 腾讯云CUDA环境搭建 categories: CUDA Freshman tags: CUDA 环境搭建 toc: true date: 2018-02-13 22:04:54 Abstract: 本文主要为不支持CUDA的电脑用户提供一个可供选择的CUDA学习环境 Keywords: 腾讯云,CUDA,GPU云 开篇废话 今天我们开始学习CUDA,又到了一年一次的,逼婚,催生,问工资,问成绩,炫富,炫孩子,炫工作的节日了.我还是想找个地方安安静静的看看…
循环.逻辑语句块   好久不写博客了,断更了好几天了,从上周五到今天,从北京到上海,跨越了1213.0公里,从一个熟悉的城市到陌生的城市,还好本人适应力比较好,还有感谢小伙伴的接风咯,一切都不是事,好了,进入正题: 本篇还是.NET 基础部分咯,主要简述循环,判断: 循环: for循环 语法: for(表达式1;表达式2;表达式3) { 循环体; } 表达式1一般为声明循环变量,记录循环的次数(int i=0;) 表达式2一般为循环条件(i<10) 表达式3一般为改变循环条件的代码,使循环条件终…