cpp 选手秋招学习笔记 day40

一、infra 相关

1.块访问和周期访问

块访问是一个线程访问一段连续的数据,而周期访问是指每个线程访问的数据是不连续的多个,可能属于多个块,每个线程访问同一个块中的不同元素。

2.为什么说 occupancy 不是越高越好?

占用率的意思是指在 sm 活跃的线程束数量除以sm 能容纳的最大线程束数量,如果追求过高的占用率程序员可能需要调低每个 block 共享内存的大小,可以使用的寄存器的数量,这些数据需要从 HBM 去读取造成数据移动的时延增加,性能下降,所以不是占用率越高越好。

3.存储层次

从寄存器 到共享内存 到 l1 和 l2cache 以及 HBM 也就是全局内存。

寄存器和 cache 是由编译器和硬件维护,而对共享内存的访问和对全局内存的访问由程序员维护。共享内存的速度比全局内存快。

4.为什么需要在 q 和 kt 计算点积的时候除以根号 dk

因为 q 和 kt 的点击结果方差随着 dk 的增加也会变得更大,而 softmax 对输入敏感,结果会更趋近于 0 或者 1,进入饱和领域,梯度接近 0,就会难以训练。

二、手撕

数组方面的

1.一比特和两比特字符

在遇到一的时候就加 2,遇到零就加 1

2.求离其他人最远距离

(小便池问题)单独讨论最左边和最右边,其他的就普通的 r-l 然后除以 2

3.求和别人不挨着允许插入的数量

最左侧初始化 len 为 1

相关推荐
有范先生1 小时前
速食米饭:如何避开闷味、干硬的速食主食
笔记
长葡萄的叶子1 小时前
AI Agent 中的 Skill:从 Tool 调用到任务能力封装
笔记·skill
LuminousCPP1 小时前
Linux系统编程(二):从目录树到命令执行|路径、环境变量、alias 与文件操作入门
linux·经验分享·笔记
摇滚侠1 小时前
《Spring Boot 3:高级与架构设计》第 1 章 Bean 与 BeanDefinition 个人理解 2
java·spring boot·笔记·后端
日拱一卒的小田2 小时前
ZYNQ学习笔记4-ZYNQ的SD卡控制器2
笔记·学习
江湖人称菠萝包2 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图
笔记·qt·qt5
xieliyu.2 小时前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
xieliyu.2 小时前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
周玉奎先生2 小时前
河南少商新材料CGM灌浆料:扎根河南工程现场的水泥基灌浆材料
经验分享·笔记·零售