自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (14)
  • 收藏
  • 关注

原创 OpenCL vs CUDA terminology

Here is a short table summarizing the differences in terminology between OpenCL and CUDAOpenCL CUDAMultiple Platforms NVIDIA onlyWork-Item ThreadWork-Group BlockNDRange GridLocal Memory Shared MemoryPrivate Memory Regist

2024-11-13 15:26:28 103 1

原创 Vector Optimization – Gather Scatter

每个元素都有一个单独的地址,因此不能分组处理它们,并且整个内存系统中的许多地方都可能存在冲突。收集操作采用索引vector并获取其元素位于通过将基地址添加到索引vector中给定的偏移量而给出的地址处的vector。在稀疏矩阵中, vector的元素通常以某种压缩形式存储,然后间接访问。此类操作的目标是支持稀疏矩阵的压缩表示(即不包括零)和正常表示(即包括零)之间的移动。在以密集形式对这些元素进行操作之后,可以使用另一个索引vector ,通过分散存储以扩展形式存储稀疏vector。

2024-11-13 15:22:37 680

原创 Vector Optimization – Stride

vector处理器可以处理大于 1 的步幅(称为非单位步幅) ,仅使用具有步幅功能的vector加载和vector存储操作。增加块大小有助于降低单位步长数据的丢失率,但增加块大小甚至会对使用非单位步长访问的数据产生负面影响。步长值必须动态计算,因为矩阵的大小在编译时可能未知,或者可能因同一语句的不同执行而改变。只要步长和存储体数量互质,并且有足够的存储体来覆盖存储体访问延迟,连续访问就会并行进行。请注意,内存访问的成本很高,并且处理器必须停止,直到获取数据,然后才能移动到下一个跨步位置。

2024-11-13 15:15:36 1239

原创 Vector Optimization – Memory Banks

将访问分散到多个独立的存储体通常可以达到所需的速率。拥有大量的存储体对于处理访问数据行或列的vector加载或存储非常有用。为了支持来自多个加载或存储的同时访问,存储器系统需要多个存储体并且能够独立地控制存储体的地址。与更简单的功能单元不同,启动速率不一定是一个时钟周期,因为存储体停顿会降低有效吞吐量。如果访问不同的存储体,它可以支持 16 个并行访问。大多数vector处理器支持加载或存储不连续的数据字的能力。大多数vector计算机支持多个处理器共享同一内存系统,因此每个处理器将生成自己独立的地址流。

2024-11-13 15:11:51 476

原创 Vector Optimization – Vector Mask Register

vector掩码控件使用布尔vector来控制vector指令的执行。当vector掩码寄存器被使能时,所执行的任何vector指令仅对vector掩码寄存器中的对应条目为1的vector元素进行操作。目标vector寄存器中对应于掩码寄存器中的零的条目不受vector操作的影响。尽管如此,消除分支和相关的控制依赖性可以使条件指令更快(比使用标量模式更快),即使它有时会做无用的工作。使用vector掩码执行的Vector指令仍然需要相同的执行时间,即使对于掩码为零的元素也是如此。

2024-11-13 15:10:22 921

原创 Vector Optimization – Vector-Length Register

我们创建一个循环来处理任意数量的迭代(该迭代次数是 MVL 的倍数),并创建另一个循环来处理任何剩余迭代且必须小于 MVL。vector长度寄存器(VLR) 控制任何vector操作的长度,包括vector加载或存储。vector寄存器处理器具有由每个vector寄存器中的元素数量确定的自然vector长度。最大vector长度(MVL) 决定架构vector中数据元素的数量。特定vector运算的长度在编译时通常是未知的,或者单段代码可能需要不同的vector长度。Strip Mining 露天采矿。

2024-11-13 15:08:47 930

原创 Vector Optimization – Multiple Lanes

Vecot multi lane for regsiter

2024-11-13 15:06:29 861

转载 Vector Architecture Vector架构

Vector Arch

2024-11-13 14:59:32 75

原创 DRM lease

租赁使用Linux drm card节点用作kms显示。能多个屏幕显示各自内容。

2024-06-03 11:22:54 254

原创 pcie posted write

就是一个优化,大脑干得快,没必要全等你设备做完。反过来就容易理解nonposted了。

2024-05-23 13:44:09 329

原创 amdgpu gang submit

amdgpu gang submit

2024-01-29 11:10:35 214

原创 NV 逆向驱动, pci平台,queue分析

分为以下几步, 和amd比较相似,但是channel部分和硬件关联, 猜测NV在fw做queue的load balance。

2023-09-19 10:50:03 1006

原创 GPU-PRT

转载:https://www.anandtech.com/show/5261/amd-radeon-hd-7970-review/6。

2023-08-30 16:04:52 168

原创 Cache bookdoor

A TLB (Translation Lookaside Buffer) is a cache of the translations from virtual memory addresses to physical memory addresses. When a processor changes the virtual-to-physical mapping of an address, it needs to tell the other processors to invalidate that

2023-06-13 10:09:51 109

原创 AMDGPU CU

AMDGPU

2023-05-09 18:41:31 518

原创 Linux 进程与线程区别

linux 进程与线程

2023-03-24 10:37:33 113

原创 amdgpu_fence_emit 的原罪-- 完成fence

amdgpu_fence_emit , gfx的amdgpu dma-fence

2023-02-01 16:23:19 574

原创 linux kernel GPU Scheduler . RR算法 FIFO entity, dma-fence, job dependency, vmid

RR的GPU schedule

2023-01-10 09:43:29 346

翻译 DRM vulkan同步(dma fence)机制 Sync Objects

gpu vulkan 同步机制 fence dma-fence , anno file

2023-01-10 09:41:56 1017

原创 amdgpu kfd TTM USERPTR

amdgpu kfd TTM USERPTR

2022-07-01 11:29:37 1243 2

原创 amdgpu kfd TTM create GTT

AMDGPU kfd TTM 创建 GTT

2022-07-01 10:57:36 1895

原创 Graphic’s文档

hi,这是我用百度网盘分享的文件~复制这段内容打开「百度网盘」APP即可获取。链接:https://pan.baidu.com/s/19RBlyfW4XW-NGi75W1CMHQ提取码:bzda

2022-03-31 23:31:11 180

原创 doorbell机制

在学习中断相关的知识时,查看了Wikipedia上的解释https://en.wikipedia.org/wiki/InterruptIn a push button analogy applied to computer systems, the term doorbell or doorbell interrupt is often used to describe a mechanism whereby a software system can signal or notify a comput

2021-11-09 10:14:38 5444

原创 intel NUC 11 使用linux系统 的面板headphone 问题

目前5.10的内核估计是只能 加规则sudo vim /etc/udev/rules.d/51-Realtek-Jackdetect.rules{15:51}~ ➭ cat /etc/udev/rules.d/51-Realtek-Jackdetect.rulesACTION=="add", SUBSYSTEM=="sound", ATTRS{chip_name}=="ALC256", ATTR{hints}="jack_detect=false"ACTION=="add", SUBSYSTEM=

2021-10-16 15:52:14 344

原创 mesa 资料

mesa好的帖子https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/

2021-05-20 16:25:29 234

原创 OpenGL 4.6 comp spec chapter 1-3

文章目录1. Introduction 简介1.1 Formatting of the OpenGL Specification OpenGL规范的格式1.1.1 Formatting of the Compatibility Profile 兼容性配置文件的格式1.1.2 Formatting of Optional Features 可选功能的格式1.2 What is the OpenGL Graphics System? 什么是OpenGL图形系统1.2.1 Programmer’s Vi

2021-05-13 11:37:59 1448

转载 linux 使用set_task 杀死D状态进程

如何杀死D状态进程https://blog.youkuaiyun.com/VincentLuo91/article/details/72625446#include <linux/init.h> #include <linux/kernel.h> /*Needed by all modules*/#include <linux/module.h> #include <linux/sched.h> //for_each_process MODULE_LICENS

2021-03-18 10:51:24 620

原创 ww_mutex 一种伤害自己保证资源可靠性的锁

参考链接知乎对mutex知乎对ww_mutexlwn社区解释另外注解内核doc ww_mutex

2021-02-26 09:32:57 1245

原创 CEA-861-D infoframe

1. infoframe是什么?Various types of auxiliary data can be carried from the Source to the DTV Monitor using InfoFrames. Thissection describes the InfoFrames that have been defined so far将source端的auxiliary信息通过接口发送到sink端。sink端应通过CEA扩展在其EDID中包括与接口相关的(例如HDMI)V

2021-02-19 15:10:04 3682

原创 CEA-861-D 术语定义

Active Format Description (AFD)—A data structure that describes what portion of the picture actuallycontains useful information (i.e., letterbox and sidebars [bars] are not considered useful information). It isstandardized in DVB, and is partially adopt.

2021-02-19 11:24:13 2774

原创 分析amdgpu display 的 irq service

分析irq servicedal: Data Access Layer 数据访问层在irq_service中的irq_service_interface.h头文件中可以看出,irq_service是向外提供中断源操作函数函数,在内部实现寄存器操作在irq_service.h又知道这个头文件是让client进行数据注册以上,我们就可以了解到。irq_service想为了以后实现一个中间层,抽象出后续寄存器操作。中断的操作,其主要分dal_irq_service_set,dal_i

2021-01-21 10:00:18 694 2

原创 VGA switcheroo VGA仲裁器

文章目录VGA SwitcherooModes of Use“使用方式Manual switching and manual power control手动开关和手动电源控制Driver power controlAPIPublic functionsPublic structuresPublic constantsPrivate structuresHandlersapple-gmux HandlerGraphics muxPower controlBacklight controlPublic func

2021-01-13 16:03:39 1426

原创 linux内核GPU驱动

atomic的实现

2021-01-13 15:59:23 839

原创 驱动文章集锦

宋宝华微信公众号系列文章宋宝华csdn关于driver的文章wowo科技

2021-01-08 15:29:37 111

原创 AMDGPU内核驱动的pageflip实现

amd使用状态机维护了pageflip的三个状态。AMDGPU_FLIP_NONE当前工作队列为空AMDGPU_FLIP_SUBMITTED当前队列运转, 提交了任务AMDGPU_FLIP_PENDING当前工作队列正在运转1. 通过libdrm从上到下查看代码流程test_page_fliplibdrm通过drmModePageFlip(DRM_IOCTL_MODE_PAGE_FLIP)发pageflip通过select等待event重复2. 内核驱动运转模式主要分

2020-12-29 11:23:35 984

原创 KMALLOC PK VMALLOC

KMALLOC PK VMALLOCkmalloc是基于slab的,所以速度比较快。vmalloc的内部会调用到kmalloc,但是只是分配vm_struct描述符,和分配nr_pages指针数组,这个数组里的每个元素指向vm_struct对应的非连续内存区域的每一个页描述符结构。真正的分页是通过alloc_page一页一页的从buddy system分配。所以物理地址是不连续的,一页一页分配物理地址不一定啥地方了。kmalloc分配的页已经映射好了,而vmalloc分配后一级一级建立页表很是麻烦。

2020-12-15 20:16:29 282

原创 对ip blocks的理解

case CHIP_POLARIS10:case CHIP_POLARIS11:case CHIP_POLARIS12:case CHIP_VEGAM:这系列的ip_blocks注册的有: amdgpu_device_ip_block_add(adev, &vi_common_ip_block); amdgpu_device_ip_block_add(adev, &gmc_v8_1_ip_block); amdgpu_device_ip_bloc

2020-09-01 11:58:05 1741

原创 Amdgpu device ip early init

ip的意思是 Intellectual Property , 是知识产权,可以理解成不同的架构有不同的设计方式.所以抽象出来,通过宏去访问.在初始化时,按照asic的形式注册(在radeon的代码中是用的asic. 猜测全称是application specific integrated circuit, 目的是给不同框架使用对应api.)我们以CHIP_POLARIS10进行分析, POLARISI10还属于VEGA之前的架构,分析起来没那么累在函数入口,POLARISI10的family设置成AMD

2020-09-01 11:54:34 715

原创 分析AMDGPU DCE系列(POLARIYS10)驱动初始化(二. load)

这里的load本意就是将设备hw初始化.先做admgpu实例化,再amdgpu_device_init对应CHIP初始化.接着做了amdgpu_acpi_init,主要需要理解的是amdgpu_device_ini值得注意的是,到现在flags还是pci注册时传下来的,没发生变化实例化adev.amdgpu_device_init这里主要有几点:adev->flags = flags;保存了设备初始化的flagsadev->asic_type = flags & AMD.

2020-09-01 11:40:16 1724

原创 分析AMDGPU DCE系列(POLARIYS10)驱动初始化(一. probe)

1. 故事从从PCI初始化说起关于drm_driver和drm_device是对drm设备的抽象,我们就不在这赘述了.有兴趣的,可以去内核doc中学习drm_device具体是什么.h2. PCI/PCIE的初始工作目前市面上使用的设备基本上都是PCI的,较少的设备还是使用的platform(估计是上古神兽了).那PCI是怎么初始化的就不在本文赘述,感兴趣的同学可以去内核中driver/pci文件中看一下TIP:arch下边会有对pci扫描的过程,可以结合起来,容易理解在amdgpu的初始化时候a

2020-09-01 11:18:52 1329

KernelDoc.tar.xz

linux kernel5.5.6 Docs. 使用linux5.5.6编译出来的文档

2020-02-26

VIM NEOVIM

git@gitee.com:botton_zhang/vim_config.git 自己下阿

2019-09-27

Shell编程指南.pdf

Shell编程指南

2019-07-11

Desktop.zip

32位寄存器分析,帮助做寄存器操作或者位域操作时快速操作

2019-06-27

c/c++ vim_config

ctrl+p可以补全变量,需要ctags支持, vimrc.bundle可用

2019-06-09

vim配置文件

vim配置文件 copy到vim的配置文件地方即可用

2018-09-30

pdf阅读器。chrome版本

这是chrome的插件,一般加密的datasheet pdf不能复制,但是我发现这个可以,所以共享

2018-09-27

source insoght 宏

比较地道的sourceinsight 宏 有助于快速开发,没啥别的配置,相比之下不会卡死

2018-08-17

基于QRcode 和SM4实现二维码生成和解析

也是套用网上大神的基础东西,自己算是组装好了以后在用的,不过用来学习还是不错的

2018-03-21

注册表修复工具内涵注册码(Regclean_Pro)

注册表修复工具 内涵注册码(Regclean_Pro) 注册表修复工具内涵注册码(Regclean_Pro)

2017-12-23

src.3e.tar.gz, unix环境

unix环境 apue编程学习 make

2017-07-27

c++ builder写api

c++ builder写api

2015-12-22

c++ windows开发

对于windows的开发

2015-12-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除