- 博客(616)
- 资源 (5)
- 收藏
- 关注
原创 CUDA入门系列课程,从最基础着手
CUDA入门系列课程,从最基础着手,突出的就是一个字“细”!!github项目包含代码、博客、课件pdf下载地址:https://github.com/sangyc10/CUDA-code!
2024-04-24 20:39:05 240
原创 Linux下GPU虚拟化
首先, mediated 设备框架(mdev),基本上,这部分代码使得内核驱动开始用vfio框架跟接口来支持虚拟pci设备。nvidia 以及intel都采用了这种所谓的mdev机制,将宿主机中的物理GPU分割成多个虚拟设备,以便供多个虚拟机同时使用。第二个, intel 的i915驱动也是采用了mdev初始化支持,当然仍然有很多工作需要去做,例如不能直接登录虚拟机的显示画面,所以必须通过客户机中安装x11vnc或者类似的vnc工具,也有一些稳定性的问题需要解决。在新Linux内核中体验GPU虚拟化。
2024-04-19 17:07:14 221 1
原创 ubuntu 不产生core dump 文件
发现上面有个双引号,会不会是这里有问题,所以重新设置了一下,把双引号去掉,按照上述操作之后,发现没有什么文件在/corefile中生成。目的:产生coredump 文件。目标机器:UBuntu2004。然后我用下面命令看了一下。
2024-03-28 19:18:25 275
原创 SSH 断开了 - tmux 命令
tmux 是一个终端多路复用器,在终端中可以创建,访问和控制多个终端会话在一个会话中可以打开多个窗口,每个窗口都占据整个屏幕,一个窗口还可以分成多个窗格tmux 让远程终端窗口和会话分离开了,终端窗口关闭时,会话继续在后台运行,新的终端窗口可以随时接入会话,接入之后终端窗口上会显示会话的信息tmux 启动时,会默认创建一个具有单个窗口的会话,在会话屏幕的底部,显示当前会话的信息Linux下 screen 命令的功能与 tmux 命令相似,相比 screen,tmux更易用,功能也更强大安装。
2024-03-24 10:32:08 185
原创 vscode突然连不上服务器了,以前都可以的,并且ssh等其它方式是可以连接到服务器的
过完年回来准备开工干活,突然发现vscode连不上服务器了,奇了怪了,年前都可以的,看了一下报错,如下,发现原来是code-server执行不起来。需要glic2.28而实际上的是2.27,嗯哼,原因找到了。当然它并没有解决我的问题,但是却让我发现了问题所在,我在win10系统命令窗口中输入,因为我服务器不能动,所以采用了另外一种方案,给vscode降低版本,想想就扯淡,百度了一下,搜索到一篇文章具有很大参考价值,vscode官方解决方案,然后在服务器中执行,
2024-02-19 11:14:11 1220
原创 ffmpeg编译cuvid的时候:ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodec
确认安装了,大概率是pkg-config没有安装。首先确认有没有安装nv-codec-header。
2023-12-26 16:25:35 573
原创 如何学习英语
首先写一些自己的感言吧,其实从大学的时候就在不断地听英语,学英语,但是到毕业十几年后,英语一直没起到什么作用,当然最有作用的时候就是几次英语面试吧。工作之后有一段学习英语的经历,当时花费了很多时间看了一些英文名著,听了很多英文有声小说,感觉这应该是自己最大的积累吧,后来还赚么学习一下发音。现在重新要捡起来是因为后期工作中大概率要用得上,不要到时候真的用的时候发现晚了。
2023-12-16 17:40:10 573 1
原创 FFmpeg之AVCodec
这一节是最重要的一节,ffmpeg的解码,还是和以前一样,一定是先来一个上下文context,再一个具体的解码器类。AVCodecContext和下面是一个解码器定义,三部分组成,第一部分是设置参数,第二部分是基类,第三部分是具体实现。如果你要实现自己的一个解码器,实现第三部分的那几个回调函数就可以了。结构体定义函数函数调用逻辑慢慢补充
2023-12-12 14:30:35 838
原创 FFmpeg之HWContextType
具体看看结构体定义吧,一大堆函数指针,这些就是你要实现的,不一定全部要实现,实现你自己想要的就可以了,主要的有transfer_data_to/transfer_data_from,map_to/map_from。仔细看上面函数就发现,全部是device mem操作,大白话说就是ffmpeg通过这套机制来实现D2H或者H2D的操作,别无其它。HWContextType算是ffmpeg中为硬解码第三方接口的一个辅助类,它自己有两个辅助子类。那么它辅助硬解码器做什么呢?我们还是通过英伟达的例子来看。
2023-12-12 14:11:48 836
原创 FFmpeg之AVHWAccel
ffmpeg是通过解码起家,所以它内部有很多自己写的软解码器,在这些软解码器的解码过程当中,比如说对于码流中的某些反量化,反变换等操作,把这些操作挪到一块硬件上,这块硬件就是加速设备。这就是hwaccel加速解码的原理,它是在ffmpeg软解码的基础上将一些特定算法加载到硬件上去做。我们可以看看ffmpeg的h264解码器,红框内部的都是h264解码器的加速插件,NVDEC只是其中之一。可以看看AVHWAccel结构体定义,发现有几个关键的函数指针,这些指针就是你需要去实现的。下面我们就说道说道。
2023-12-12 14:01:37 620
原创 FFmpeg之AVFilterGraph
AVFilterGraph是对pileline的一个整体描述,没看之前以为里面大概是个有向无环图什么的来描述,进去一看,居然只是用链表来描述。
2023-12-12 12:01:17 857
原创 FFmpeg的AVFilter框架总成AVFilter-AVFilterContext
毫无疑问,还是和前面的一样一个context和一个包含有回调函数指针的插件结构体,想要实现自己的插件,主要实现里面的回调函数就可以了,当然,AVFilter比其它模块稍微复杂一点还要牵扯到其它一些辅助模块,在其它章节介绍。
2023-12-12 11:59:17 897
原创 FFmpeg的AVOutputFormat
还是和前文一样,先把架构勾勒出来,后期慢慢讲一下代码流程,可以进行各类网络协议的推流,各类容器的封装。
2023-12-12 10:18:14 830
原创 FFmpeg的AVInputFormat
首先肯定是AVFormatContext,这个就是上下文,这个结构体太庞大了。特别要注意里面的AVIOContext,这两个回调可以从自己的内存中读取数据。另外还有一个AVStream的结构体,专门用来存储流。
2023-12-11 20:14:33 697
原创 FFmpeg的AVIOContext
下面的注释解释了一个类似于环形队列中读取数据,只要设置了这三个指针,就可以从它指定的内存中读取数据/***//***//** READING* | |* pos* WRITING* | |* pos*/int error;
2023-12-11 20:12:13 606
原创 FFmpegd的AVBSF
*** @{*/ /**/**/**/**/**/**/**/**上面是bsf的上下文,下面的是它的插件回调函数/***//***/*/看多了就会发现非常相似,基本就一个套路,一个上下文结构体,一个回调插件结构体,上下文中一个私有的指针,大小为priv_data_size,所以如果想要实现插件,简单的实现这几个回调函数就可以了。
2023-12-11 19:42:51 720
原创 FFmpeg的AVcodecParser
这个模块是AVCodec中的子模块,专门用来提前解析码流的元数据,为后面的解码做准备,这一点对cuda-NVdec非常明显,英伟达解码器的元数据解析是放在CPU上的,所以就非常依赖这个解析模块。如果你要实现一个自己的parse,只要简单的重写下面四个函数就可以了。下面是操作函数,第一个是列出所有的parser。FFmpeg中有很多现成的parser。第三个是最重要的,也就是解析pkt。最后一个是close parser。第二个是初始化parser。下面是插件接口的入口。
2023-12-11 18:24:35 666
原创 FFmpeg-基础组件-AVBufferPool
FFmpeg实现了一个AVBufferPool ,这个pool可以用来提前做些内存分配等,在ffmpeg cuvid插件中hwcontext_cuda.c文件夹中可以看到这个Pool的用法。下面是一个bufferPoll的定义,其中有一个refcount,作为ref来使用,另外有两个alloc函数和pool_free。下面是Pool的元素,BufferPoolEntry,可以看到一个next指针,其实就是一个单向链表。这个是用来释放AVBuffer 中的data数据的,可以由用户来指定。
2023-12-11 17:30:23 676
原创 FFmpeg-基础组件-AVPacket
本章主要介绍AVPacket结构以及相关内容。首先非常抱歉,可能你看到的是我粘贴了以下代码,我先打个架构,后期慢慢补充,小弟时间有限。
2023-12-11 15:35:35 402
原创 芯片-开发板设计相关收集
在一个SOC成型之前,设计工程师用verilog代码把每个模块敲出了,粗略进行模块级的验证,在模块级验证通过之后,会通过总线把各个模块集成在一起。目前来说,应用比较广泛的总线协议是AMBA总线,包括AXI,ASB,AHB,APB,我在工作中最常接触到的就是AXI和APB,前者主要是挂一些高速的核心外设,DDR之类的。SoC与ASIC最大的区别就是形成了一个完整的片上系统,其中包括计算、存储、外设以及层次化总线等子系统,由此在一颗芯片上实现了一个完整的计算机系统结构组成。
2023-12-09 00:28:49 377
原创 C实现的双向链表队列
如下代码所示,一个头文件实现的双向链表,用c代码实现:#ifndef _LINUX_LIST_H#define _LINUX_LIST_H#include "stddef.h"#include "poison.h"#ifndef ARCH_HAS_PREFETCH#define ARCH_HAS_PREFETCHstatic inline void prefetch(const void *x) {;}#endif/* * Simple doubly linked list im
2023-11-29 11:19:57 667
原创 一款好用的window ssh远程终端term工具
这是一款可以在window10上运行的ssh终端工具.把它移动到C目录下面,并且搞一个桌面快捷方式,就可以了。
2023-11-22 11:43:49 178
原创 一款好用的jpeg分析软件 JPEGsnoop
最近解码器解码jpeg的时候出了问题,为了追踪问题,找到了这款免费好用的jpeg分析软件-上面已经有编译好的win10 exe了。
2023-11-13 14:07:32 544
oversubscribed command queues in gpus
2023-09-20
这是一款清华大学开发的avs2编解码器,里面有详细的源码
2023-05-17
这是一个国产avs(jizhun)的编码器,是清华大学编写的,效率还可以,大家可以参考
2023-05-17
nvcodec-master.zip
2021-04-14
libxl综合文件.zip
2020-07-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人