---
config:
    theme: 'forest'
---
timeline
    title NVIDIA Desktop GPUs History
    section 前期 NVxx 时代
        1999 : NV04
        2004 : NV40
        2006 : NV50 : Tesla : Introduction of per context VMA
    section GeForce GX1xx 时代
        2010 : GF1xx : NVC0 - Fermi
        2012 : GK1xx : NVE0 - Kepler : Vulkan support : nouveau start support reclocking
        2014 : GM1xx : Maxwell
        2014 : GM2xx : Maxwell 2 : Start of signed firmware
        2016 : GP1xx : Pascal
        2017 : GV1xx : Volta
        2018 : TU1xx : Turing : GPU System Processor support
        2020 : GA1xx : Ampere
        2022 : AD1xx : Ada Lovelace
        2025 : GB2xx : Blackwell
Read more »

没有 task_struct 的 ISR

众所周知,中断上下文不能睡眠,但是这句话细说起来,还是有很多值得深究的地方。所谓中断上下文,就是中断触发后,执行中断服务例程 (Interrupt Service Routine/Interrupt Handler) 的资源,这些资源有哪些呢?少得可怜,除了执行 ISR 代码的 CPU 核心外,中断上下文甚至都没有自己的栈来保存临时变量,所有的资源都是抢占中断触发时那个进程的,显然不能让这种“抢占”持续太久,所以 Linux 将 ISR 分成了 top halfbottom half 两部分,也就是硬件中断上下文软件中断上下文, 所以严格来说是,在 Linux 内核中,硬件中断上下文不能睡眠

Read more »

flowchart TD
  subgraph GPU
    slot-0[HW Run Queue]
    slot-1[HW Run Queue]
    slot-2[HW Run Queue]
  end

  sched0[drm_gpu_scheduler]
  sched1[drm_gpu_scheduler]
  sched2[drm_gpu_scheduler]

  runq00[drm_sched_rq<br>KERNEL]
  runq01[drm_sched_rq<br>HIGH]
  runq02[drm_sched_rq<br>NORMAL]
  runq03[drm_sched_rq<br>LOW]

  runq10[drm_sched_rq<br>KERNEL]
  runq11[drm_sched_rq<br>HIGH]

  runq20[drm_sched_rq<br>KERNEL]
  runq21[drm_sched_rq<br>HIGH]
  runq22[drm_sched_rq<br>NORMAL]

  entity00@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity01@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity02@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity03@{shape: docs, label: "drm_sched_entity<br>job chain"}

  entity10@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity11@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity12@{shape: docs, label: "drm_sched_entity<br>job chain"}


  entity20@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity21@{shape: docs, label: "drm_sched_entity<br>job chain"}
  entity22@{shape: docs, label: "drm_sched_entity<br>job chain"}

  entity00 --> entity01 --> entity02 --> entity03 --> runq00
  entity10 --> entity11 --> entity12 --> runq10
  entity20 --> entity21 --> entity22 --> runq02

  runq00 --> sched0
  runq01 --> sched0
  runq02 --> sched0
  runq03 --> sched0

  runq10 --> sched1
  runq11 --> sched1

  runq20 --> sched2
  runq21 --> sched2
  runq22 --> sched2

  sched0 --> slot-0
  sched1 --> slot-1
  sched2 --> slot-2
Read more »

小小的人儿

攥不住流淌的昼与夜

当你舞动手中的仙女棒

却仿佛在挥洒银河

捂住双耳

不为那凛凛的冰寒

只等花儿在星星眼前开放

仍怀抱静谧和安然

这年初二

我们仨

凤翔城里看凤翔

往后余生

翔凤桥头不彷徨

1
2
3
4
5
6
7
8
UVD feature version: 0, firmware version: 0x40000d00
MC feature version: 0, firmware version: 0x00a777d0
ME feature version: 29, firmware version: 0x00000091
PFP feature version: 29, firmware version: 0x00000054
CE feature version: 29, firmware version: 0x0000003d
RLC feature version: 1, firmware version: 0x00000001
SMC feature version: 0, program: 16, firmware version: 0x10020000 (2.0.0)
VBIOS version: 113-xxx-xxx
Read more »
0%