发表于 sosp2003,经典系统工作 GFS

GFS 包括单个 master 节点。若干 chunkserver,被多个 client 同时访问

将文件分为大小固定的 chunk,每个 chunk 有一个全局唯一的 64位,由 master 在 chunk 创建时分配。
chunkserver 在本地以 linux 文件存储 chunk。每个 chunk 默认存储三个副本。

nvcc 编译过程

nvcc 编译分为两个阶段
首先将 .cu 编译为面向 虚拟架构 的 .ptx 代码 (stage1)
然后将 .ptx 编译为面向 实际架构 的 二进制代码 (stage2)

- 阅读剩余部分 -

cupti : CUDA profiling tools interface
搭建面向 CUDA 应用的 profiling 和 tracing 工具

CUDA dynamic parallelism : CDP

CUPTI 提供四种 API :

  • activity api
  • callback api
  • event api
  • metric api

CUPTI 在第一次调用 CUPTI 函数时懒惰初始化
cuptiSubscribe() : 最先调用,防止多个 CUPTI client 互相干扰

目前理解:CUPTI 分为 用户端 和 服务端, 服务端记录 CUDA 设备和 CPU 上产生的事件 CUpti_Activity,储存在 用户端提供的 Activity Buffer 上
CUPTI 不保证 activity 在 activity buffer 中的顺序
用户端 调用 cuptiActivityFlushPeriodcuptiActivityFlushAll

CUPTI 创建一个 worker thread,以减少对 application thread 的干扰

activate api

activate record : 记录事件,使用基类 CUpti_Activity
activity buffer : 将 activity record 从 CUPTI 转移到 client
使用 cuptiActivityEnable cuptiActivityEnableContext 初始化
activity kind

这是一个大坑,早晚要来填。。。

PCI BAR : base address register