图森未来 高性能计算工程师 一面
CUDA
-
内存模型,寄存器大小,常量内存和全局内存的区别
-
如何查看kernel使用寄存器数量
-
如何优化寄存器使用
-
GPU内存传输带宽 CPU to GPU,GPU to GPU
-
CUDA stream 异步
操作系统
-
CPU端多线程
-
进程和线程,进程间通信,说一下如何实现管道
-
锁机制 读写锁和互斥锁区别
linux
-
如何查看一个进程打开了哪些文件
-
top命令 哪个是看内存情况
-
给定多行每行 xx= n文件 大致如下,如何通过shell找出最大值
a=1 b=2 c=4.5 ... efg=10 ...
-
新建用户命令,修改多个文件拥有者命令
Python
-
with
C++
-
shared_ptr
-
pthread
-
boost库
数据结构
-
b树,b+树
-
hashmap 底层实现,查找的时间复杂度
-
优先队列
算法题
实现 LFU 缓存算法, 设计一个类 LFUCache,实现下面三个函数
-
构造函数: 传入 Cache 内最多能存储的 key 的数量
-
get(key):如果 Cache 中存在该 key,则返回对应的 value 值,否则,返回-1。
-
set(key,value):如果 Cache 中存在该 key,则重置 value 值;如果不存在该 key,则将该 key 插入到到 Cache 中,若 Cache 已满,则在插入前淘汰访问次数最少的数据。
注: 访问次数:每次get/set一个存在的key都算作对该key的一次访问;当某个key被淘汰的时候,访问次数清零 所有 key 和 value 都是 int 类型