09 2019 档案
摘要:GLobal memory的load/store都要经过L2缓存(在计算能力 < 3的卡还有L1缓存),所以目前的主流卡基本上都已经没有L1缓存了,所以后面就只以L2缓存为例. 对齐寻址和临近寻址: Global memory在与L2做数据传输的最小单位为32bytes,称为L2 cahce lin
阅读全文
摘要:cuda shared memory读写带宽大于global memory(10倍以上),读写延时低(20~30倍),例如cuda parllel reduction的例子就先将数据从global memory搬运至shared memory,然后再做运算,从而提高程序性能. 为了提高读写带宽,cu
阅读全文
摘要:1.死锁检测 给定一组线程操作锁的流程,判断是否会发生死锁? 例如:有两个线程和两个资源,线程对锁的操作如下: 其中T表示线程id,L表示锁id,S表示操作(1表示获取锁,0表示释放锁) T L S 1 1 1(线程1获取1号锁) 2 2 2(线程2获取2号锁) 1 2 1(线程1获取2号锁,保持等
阅读全文
摘要:求 n = 5x + 2y + z的全部非负整数解.例如n = 5时,有4组解:(0, 0, 5)、(0, 1, 3)、(0, 2, 1)、(1, 0, 0). 1.最普通的解法,三层循环遍历: 优化1:unroll 3rd loop(展开最里层的循环) 优化2:remove if(移除if判断)
阅读全文
摘要:以uint为例,当计算过程中(比如9999^6)产生大于UINT_MAX(2^32 - 1)的值的时候,编译时会产生integer overflow,即数值溢出,最后的结果也被截断. 1.如何检测 :https://www.quora.com/How-do-I-prevent-integer-ove
阅读全文

浙公网安备 33010602011771号