yyrcd
2022
Apr 07
n
个球,k
个桶,有多少种分法?
相当于有 k - 1
个板子,一共有 n + k - 1
个物体,在这么多物体里放入 k - 1
个板子,剩下全部放球,因此是 C(n+k-1, k-1)
,其中 C(n, r) = n! / (n-r)! r!
Ref: 巧用隔板法解答组合数学问题 - 橘子网
2021
2021
Dec 31
nsys nvprof python benchmark.py
nv-nsight-cu-cli --launch-skip 1 --launch-count 3 python benchmark.py
nv-nsight-cu-cli --kernel-regex "cuAngularAEVs" --launch-skip 1 --launch-count 1 python benchmark.py
ncu -f -o my_report_%h_%i --set=detailed --section=SourceCounters --import-source=yes --launch-skip=1 --launch-count=3 python benchmark.py
memory efficency: cuda-training-series/exercises/hw8 at master · olcf/cuda-training-series
nv-nsight-cu-cli --metrics l1tex__t_sectors_pipe_lsu_mem_global_op_ld.sum,l1tex__t_requests_pipe_lsu_mem_global_op_ld.sum,l1tex__average_t_sectors_per_request_pipe_lsu_mem_global_op_ld.ratio,l1tex__t_sectors_pipe_lsu_mem_global_op_st.sum,l1tex__t_requests_pipe_lsu_mem_global_op_st.sum,l1tex__average_t_sectors_per_request_pipe_lsu_mem_global_op_st.ratio,smsp__sass_average_data_bytes_per_sector_mem_global_op_ld.pct,smsp__sass_average_data_bytes_per_sector_mem_global_op_st.pct --launch-count 3 ./a.out
Ref:
2021
Aug 18
2021
Jul 05
每秒浮点运算次数 (FLOPS)
1 Million 的 float 是 4 MB 1 Billion 的 float 是 4 GB
Compute Capability |
Architecture Name |
---|---|
8 | Ampere |
7.5 | Turing |
7 | Volta |
6 | Pascal |
5 | Maxwell |
3 | Kepler |
2 | Fermi |
1 | Tesla |
Ref:
2021
Mar 18
读global mem,从L1走的话(默认L1),一个transaction是32个float。 但是,可以指定从 L2走,L2走的话,一个transaction可以是1,2,4个segments,每个segments是8个float。 所以 如果memory access 不是 coalessing的话,L2走 利用率更高。 或者 如果 一个warp 访问的是同一个元素,L2也快。 Ref:
2021
Feb 11
// wait for the previous block finish the partial sum
while(Atomicadd(sum[sbid], 0) == 0) {;}
// do the job
do
// give signal to the next block
Atomicadd(sum[sbid+1], 1)
上面的问题希望让 block 顺序执行,如果 scheduler backward 分配 block,后面的 block 在运行,并且等待着previous block 的结果,但是 SM 不足以分配资源给 previous block,很可能会产生 deadlock。 blockIdx.x 本是 block 的 id,不用这个。因为这个id无法保证sceduler是顺序分配的。 解决办法是在 global memory 定义一个 blockidcounter,每个block执行的时候,thread0 对counter atomicadd加一。 这样blockidx就是顺序执行的了。
2020