笔记记录

【C语言点滴】

C1:前言

1、C书经典

2、baigoogledu.com,stackoverflow.com;CSDN.net;newsmth.net;LaTeX;《算法导论》;数学、计算数学、数学思维。

3、google搜索从入门到精通

4、软件工程:懂得软件工程的程序员就不再是妓女了。

C2:编程基础

一、对C的看法:三句话。1、世上只有两种产品,一种是没人用的,另一种是被人骂的。2、你恨它,适应它,最后你离不开它。3、如果你爱C,不需要理由;如果你不爱C,任何事都是理由。

二、如何学好C:幸福就像狗的尾巴,。。。静若瘫痪,动若癫痫。学习方法:一行又一行的敲代码...。不要只是学习语法,,,。Dirty hands。


【CUDA】

零零、5.2

1、讲了CPU、GPU各自的特点;我们面临实际问题的场景和情况;什么样的设备适合处理这类问题。

2、C、G任务、硬件方面处理的不同

3、GPU指令开销优化带来的性能提升

4、循环并行化。循环控制变量i ==> 线程索引标识

5、warp的调度,各个warp之间执行顺序的关系。每个SM在某一瞬时时刻只处理一个warp。在它阻塞(比如由于内存读取导致无法进行下面的操作)产生大量空闲时,下一个warp就会转为执行状态,以填补这个空闲。

6、合并成一个warp一个执行的好处。

零、5.3  讲线程块

1、引入线程块后,线程号的索引

2、注意内存越界访问错误

3、设置每个块内的线程数:一个SM能处理的block数 = 每个SM所能支持的最大线程数 / 设好的块内线程数。需要多少个硬件SM数 = 总的block数 / SM能处理的block数。

4、<stdlib.h>,<conio.h>

一、5.4  线程网格

1、线程块内线程数的设置原则:(1)不能太小,太小无法充分利用硬件。(2)目标数据是块内线程数、同时也是线程束大小的整数倍,易于编程。

数组数据的布局原则:数组宽度最好是线程束大小的整数倍。

NOTE:很多图像算法用的就是8*8的线程块处理像素。

2、线程块的布局:要的是横条状的行分布,而且行的跨度为32的整数倍。

3、X、Y索引

二、5.5  线程束

1、分支、阻塞、半线程束

三、第X章,CUDA环境搭建

1、windows:VS平台。64位问题,库问题。2、linux,mac。3、nsight、集成于VS+独立监听,开启、调试、远程


【C】

1、const:C关键字,用它来修饰的变量值只能读,不能被更新。它存在的目的:取代预编译指令,消除其缺点,同时继承其优点。对于内存分配上的优点,const的百度百科词条中有详细介绍。它刚开始定义时不分配内存,第一次引用时才分配内存,以后再怎么用也不会另外再分配。而宏定义的情况则不同,有多处引用宏定义,就会多次进行宏替换,多次分配内存。特点:只读变量,本质还是变量,不能当常量使用。例如拿它去定义数组就是错的。带const的指针用法:例如对于 const char *p 和 char * const p,画一条线穿过*号位置,const在左边==>指针p指向的数据为常量,即 const char *p。在右边,则指针本身为常量,即 char * const p。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值