记录成长的痕迹

Linux Kernel


  • 首页

  • 归档

  • 标签

Linux GPU系列-GPU驱动到底做什么

发表于 2021-05-21 |
GPU驱动和其他设备驱动其实差异不大,主要就两个面: 控制面:设置state,通过fence做同步等 数据面:把数据从CPU搬到GPU,这里主要涉及到数据格式和数据layout,类似网卡的描述符,以及设备内存的管理。 high level 数据面本文以OpenGL为例,主要讲数据如何搬到GP ...
阅读全文 »

Linux GPU系列-07-MESA Gallium MALI Panfrost GPU驱动

发表于 2021-05-13 |
MALI Panfrost 驱动代码路径在: src/gallium/drivers/panfrost下,官网目前还不太支持Vulkan 最新的开发活动都在:https://gitlab.freedesktop.org/panfrost/mesa里面有部分Vulkan的支持。 主要还是实现pipe ...
阅读全文 »

Linux GPU系列-06-MESA Gallium Virtio GPU驱动

发表于 2021-05-13 |
Virtio GPU 驱动从用户态到kernel完整过程如下图 拆开看的话,分成几部分: mesa中的用户态驱动:src/gallium/drivers/virgl,实现了pipe driver和winsys,但是没实现Vulkan的支持 guest kernel驱动: drivers/gpu/ ...
阅读全文 »

Linux GPU系列-05-MESA架构

发表于 2021-05-13 |
代码分析本应该自下而上的,但是GPU的主要驱动主要在用户态,所以这次从用户态先开始。而且Frame怎么画出来的,也是由用户设置state和调用draw call产生的。下图是从DirectX Spec官网来的: MESAMESA源码里面有2套架构,现在驱动主要基于Gallium架构。 Galli ...
阅读全文 »

Linux GPU系列-04-ARM MALI GPU OpenGL端到端流程

发表于 2021-05-12 |
前面已经讲过了整个软件堆栈,MALI GPU工作流程,这次用一个简单的OpenGL的例子讲讲端到端的整体流程。 OpenGL简介OpenGL是非常接近GPU模型的API,整体类似一个状态机,对应到GPU的pipeline: OpenGL编程模型如下图 实际例子例子的完整源码下面是关键片段的代码 ...
阅读全文 »

Linux GPU系列-03-图形软件栈

发表于 2021-05-11 |
Linux类系统上的图形软件栈图形软件堆栈包括窗口系统和3D显示两部分。不同的操作系统上图形软件栈也不一样,甚至在linux类系统上,由于GPU硬件厂商的原因,软件栈也不尽相同。本文主要介绍Linux类操作系统上的图形软件栈。 窗口系统窗口系统是最常见的人机交互界面,比如Windows系统上的GUI ...
阅读全文 »

Linux GPU系列-02-ARM MALI GPU工作流程介绍

发表于 2021-05-10 |
先讲讲ARM MALI GPU的工作流程,为后续做下铺垫。 GPU工作流程-pipeline介绍GPU的工作流程,一般都是介绍GPU的pipeline,主要包括三部分: Vertex处理,做MPV(Model,View, Project trasform)和Screen mapping坐标变换,c ...
阅读全文 »

Linux GPU系列-01-GPU物理模型

发表于 2021-05-09 |
接着上篇,这篇主要讲讲GPU的构成。 GPU物理模型GPU通常是一个独立的PCIe卡,当然也可能集成到SoC中,但是仍然呈现为一个PCIe设备。 PCIe卡的物理形态一般如下图: 如果集成到SOC中的话,一般如下图: 打开看下内部单元的话,以AMD RDNA的卡为例,内部框图如下: 如果我们把 ...
阅读全文 »

使用QEMU测试soft roce

发表于 2020-12-24 |
kernel config打开以下选项 CONFIG_INFINIBAND=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_RDMA_RXE=y QEMU的rootfs依赖包依赖以下包: ...
阅读全文 »

linux kernel有趣的link

发表于 2020-12-08 |
整体:台湾成功大学 黄敬群Rober-love-googleLinux Kernel Development Second EditionAndries Brouwer The Linux kernel 虚拟化Yi颗烂樱桃 GPUGerd Hoffmann CPU 架构Intel Xeon Proc ...
阅读全文 »
1…345…7
Joy Xu

Joy Xu

技术积累

70 日志
59 标签
GitHub
Creative Commons
Links
  • 1#
  • 2#
  • software dev leadership
  • kernel contribution
  • linux tracing
  • linux tracing advance
  • wangchao
  • architecure
  • Kenneth
  • arm verification jun's blog
  • hacker
  • useful link
  • good
  • arm linux boot
  • simple emu soc
  • ali
  • 泰晓
  • 蜗窝
  • ffutop
  • peter
  • virt
  • gdb
  • 性能调优
  • memory latency
  • peter-at-google
  • 内存漫画
  • kernelgo
  • makelinux
  • peoplekernel
© 2017 - 2025 Joy Xu
由 Hexo 强力驱动
主题 - NexT.Mist