- 博客(166)
- 资源 (1)
- 收藏
- 关注
转载 大语言模型量化方法对比:GPTQ、GGUF、AWQ
在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。说明:每次加载LLM示例后,建议清除缓存,以防止出现OutOfMemory错误。如果在jupyter中无法释放显存,请重启这个jupyter notebook。
2025-02-21 15:27:14
302
转载 mac下编译ffmpeg
1、源码地址下载下载地址git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg2、进入下载目录cd ffmpeg目录3、configure配置./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --
2021-09-28 19:42:11
1002
转载 如何快速定位程序Core?
1. 程序Core定义及分类程序core是指应用程序无法在保持正常running状态而发生的崩溃行为。程序core时会生成相关的core-dump文件,core-dump文件是程序崩溃时程序状态的数据备份。core-dump文件包含内存、处理器、寄存器、程序计数器、栈指针等状态信息。我们可以借助core-dump文件分析定位程序Core的原因。这里我们从三个方面对程序Core进行分类:机器、资源、程序Bug。下表对常见的Core原因进行了分类: 分类 原因
2021-07-06 18:36:54
1398
原创 如何只cherry-pick 一个commit里面的某几个文件而不是全部?
问题描述:有时候我们做cherry pick的时候不想把整个commit 都pick过来,典型的原因比如:commit里面只有一个或几个文件对我们自己的branch是有用的。解决方案:试验下来,觉得最简单的方式是:git cherry-pick -n <commit_id>-n 的意思是:-n, --no-commit don't automatically commit如果commit里面有多个文件,执行此命令后需要先unstage 并恢复不想要...
2021-04-06 23:36:43
4325
1
转载 kubectl logs和docker logs输出日志不同的问题
kubectl logs用来查询pod日志docker logs用来查询容器日志问题描述但是近期在分析日志时发现一个问题,kubectl logs查询pod日志输出的不全,和对应容器docker logs查询输出的日志相去甚远,kubectl logs查询出来的日志比查询容器日志少了将近三分之一。而且容器的日志也会出现丢失的现象,日志并不是从容器启动的那一刻开始记录的,貌似部分日志被清理了。问题分析首先,当看到kubectl logs输出的日志的时候,就觉得不对,开始时间就有问题,没有pod
2021-04-04 11:36:59
2612
转载 Linux 命令中 more、less、head、tail 命令的用法
more 命令功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上。 more 命令会一页一页的显示,方便使用者逐页阅读,而最基本的指令就是按空白键(space)往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more 命令从前向后读取文件,因此在启动时就加载整个文件。(1)命令格式more [选项] 文件(2)常用参数参数 描述+n 从笫 n 行开始显示-n 定义屏幕大小为 n 行+/pattern 在每个档...
2021-04-04 11:35:20
464
转载 Gflags开源库使用--解析命令行参数
一、简介gflags是Google的一个命令行参数处理的开源库,使用C++开发,具备Python接口,可以替代getopt。gflags支持从环境变量、配置文件读取参数。gflags使用起来比getopt方便,但是不支持参数缩写(例如getopt支持--list缩写成-l,gflags不支持)。gflags不支持列表,用户可通过借助string参数实现:可看作以逗号分隔的参数列表:DEFINE_string(languages, “english, french, german, chi.
2021-03-27 01:45:52
2106
原创 C++宏定义中#和##的用法
前段时间很到了宏定义中的新知识:#与##,感觉打开了新天地的大门。首先来介绍一下这两种功能:##的用法是负责将其后面的东西转化为字符串,比如:#define TO_STRING(str) #strint main(){ cout << TO_STRING(this is a string) << endl; return 0;}这段代码中,TO_STRING宏就会将括号中的内容转化为字符串,生成"this is a string",然后由co...
2021-03-27 01:09:49
7158
1
原创 Linux下常用压缩 解压命令和压缩比率对比
常用的格式有: tar, tar.gz(tgz), tar.bz2,不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。1. tar 只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。(1)打包归档格式:tar -cvf examples.tar files|dir#说明:-c, --create create a new archive 创建一个归档文件-v, --verbose verbosely list files processed
2021-03-21 18:13:44
14753
1
转载 Kubectl常用命令大全
参考:https://www.jianshu.com/p/07455dbfd6bbKubectl 常用参数分类基础命令:create,delete,get,run,expose,set,explain,editcreate 命令:根据文件或者输入来创建资源# 创建Deployment和Service资源$ kubectl create -f demo-deployment.yaml$ kubectl create -f demo-service.yamldele..
2021-03-19 13:44:53
743
原创 生成独立的gcc调试文件及利用调试文件调试core文件
1、生成独立的gcc调试文件编译调试信息:gcc -g -o main main.c分离调试信息:objcopy--only-keep-debug main main.debug或者cp main main.debug strip--only-keep-debug main.debug从原始文件中剥离调试信息:objcopy --strip-debug main或者strip --strip-debug --strip-unneeded main通过..
2021-03-18 22:41:51
4192
原创 linux如何将一个正在运行的进程转入到后台执行
要求:将一个正在当前前台执行的进程转入后台执行,并且要求退出shell后依然保持不退出进程。 ctrl+zto stop (pause) the program and get back to the shell bgto run it in the background disown -h [job-spec]where [job-spec] is the job number (like%1for the first running job; find about your n
2021-03-11 13:31:00
4742
原创 ProtoBuf 语法简介
一、简介。protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等。其特点是不限语言、不限平台、扩展性强,就像XML一样。与XML相比,protobuf有以下特点:1、操作更简单。例如,我们要定义一个个人信息的结构,其中包括名称和邮箱地址两个部分。用XML定义如下:<person><name>John Doe</name><email>jdoe@example.com&...
2021-02-20 20:18:28
11171
1
转载 ProtoBuf 官方文档(二)- 语法指引(proto2)
翻译查阅外网资料过程中遇到的比较优秀的文章和资料,一是作为技术参考以便日后查阅,二是训练英文能力。此文翻译自 Protocol Buffers 官方文档 Language Guide 部分翻译为意译,不会照本宣科的字字对照翻译以下为原文内容翻译语法指引(proto2)本指南介绍如何使用 protocol buffer 语言来构造 protocol buffer 数据,包括 .proto 文件语法以及如何从 .proto 文件生成数据访问类。它涵盖了 protocol buffer 语言.
2021-02-20 19:40:05
1885
原创 netstat命令查看 进程占用的端口 以及某个端口是否被占用
1 查看进程占用的端口(需要用到进程的pid)[root@localhost ~]# netstat -ntlp | grep 1221tcp 0 0 0.0.0.0:8750 0.0.0.0:* LISTEN 1221/./bin/sub_vid进程1221 占用端口8750;2 查看某个端口是否被占用[root@localhost ~]# netstat -ntlp | grep 8750t...
2021-02-20 17:46:32
4991
转载 C++11新增alignas关键字作用
alignas关键字用来设置内存中对齐方式,最小是8字节对齐,可以是16,32,64,128等。下面先写个alignas对齐的实际代码,等下再来说为什么会这样。#include <iostream>using namespace std; struct struct_Test1{ char c; int i; double d;}; struct alignas(8) struct_Test2{ char c; int i; double d;};
2021-02-20 11:36:26
3678
1
转载 本地文件夹关联(添加)到git上
最近放假在家呆的有些废了,今天在家上完班打算把过去一年写的代码都整理一下,结果又忘了怎么把本地的文件夹上传到git上了。好吧好吧,这回记录下来,下次忘了再看吧。。。1、在git上新建一个project2、找到要上传的文件夹路径,右键空白处打开git bash3、git初始化$ git init4、git remote add origin "自己在三方代码托管平台上所创建仓库对应的地址"$ git remote add origin git@gitlab.com:thematic
2020-10-29 14:38:02
2314
转载 C++11新特性:参数绑定——std::bind
概述std::bind函数定义在头文件functional中,是一个函数模板,它就像一个函数适配器,接受一个可调用对象(callable object),生成一个新的可调用对象来“适应”原对象的参数列表。一般而言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺序调整等操作。函数原型std::bind函数有两种函数原型,定义如下:template< cl.
2020-10-22 22:08:18
935
转载 C++11之Lambda表达式
Lambda表达式C++11的一大特性就是引入了Lambda表达式,并在后续的C++14进行了加强。利用Lambda表达式,可以方便定义和创建匿名函数。一个Lambda表达式表示一个可调用单元,我们可以将其理解为一个未命名的内联函数。Lambda语法定义[capture list] (paramters list) mutable exception-> return type{function body}其中——capture list,捕获外部变量列表; paramte
2020-10-22 19:48:17
772
转载 关于typedef void (*sighandler_t)(int)的理解
最近,在学习Linux信号量时,看到signal函数中typedef的一个用法,觉得很有意思。于是就拿出来说道说道。 它定义了一个类型sighandler_t,表示指向返回值为void型(参数为int型)的函数(的)指针。它可以用来声明一个或多个函数指针。 sighandler_t sig1, sig2; 这个声明等价于下面这种晦涩难懂的写法: void (*sig1)(int), (*sig2)(int); 1. 关于typed...
2020-10-22 19:45:19
1232
1
转载 C++17之『折叠表达式』
C++11 提供了可变模板参数包, 使函数可以接受任意数量的参数. 但在 C++11中展开参数包稍显麻烦, 而 C++17 的折叠表达式使得展开参数包变得容易,其基本语法是使用(...)的语法形式进行展开.支持的操作符折叠表达式支持 32 个操作符:+,-,*,/,%,^,&,|,=,<,>,<<,>>,+=,-=,*=,/=,%=,^=,&=,|=,<<=,>>=,==,...
2020-10-22 17:56:00
763
转载 SignalHandler 处理系统信号
在服务器端后台开发中,常常需要写 daemon 程序在后台默默执行一些任务。除了正常的逻辑之外,还需要考虑处理异常退出时怎么办。这时可以用到 signal 这个函数来注册异常信号的回调函数。示例#include <iostream>#include <csignal>#include <time.h>#include <stdlib.h>#include <unistd.h>using namespace std;void
2020-10-20 11:22:18
3901
转载 BOOST 之filesystem, path
目录[-]使用 boost::filesystem 的第一个程序 清单 1. 用于确定某个文件的类型是否为 Directory 的代码 了解 Boost path 对象 清单 2. 创建 Boost path 对象的方法 清单 3. 使用本机格式初始化 path 清单 4. 使用可移植格式初始化 path path 成员函数概述 清单 5. 使用 path::iterator(begin 和 end 接口) 清单 6. 路径字符串的串联 错误处理 清单 7. Boost 中的错误处理
2020-10-19 17:25:03
3283
转载 prctl函数的应用
intprctl( intoption,unsigned long arg2,unsigned long arg3,unsigned long arg4,unsigned long arg5 )这个系统调用指令是为进程制定而设计的,明确的选择取决于option:PR_GET_PDEATHSIG :返回处理器信号;PR_SET_PDEATHSIG :arg2作为处理器信号pdeath被输入,正如其名,如果父进程不能再用,进程接受这个信号。PR_GET_DUMPABLE :返回处理器标...
2020-10-14 16:58:23
698
转载 TCP流量控制-滑动窗口机制
TCP窗口机制TCP header中有一个Window Size字段,它其实是指接收端的窗口,即接收窗口。用来告知发送端自己所能接收的数据量,从而达到一部分流控的目的。其实TCP在整个发送过程中,也在度量当前的网络状态,目的是为了维持一个健康稳定的发送过程,比如拥塞控制。因此,数据是在某些机制的控制下进行传输的,就是窗口机制。窗口缩放因子(Window Scaling)以前,window size最大为2的16次方,为65535,随着宽带不断提高,65535字节已经小了,为了突破限.
2020-09-03 10:07:32
2748
原创 TCP拥塞控制算法分析
TCP拥塞避免拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。超时重传机制超时重传机制主要是为了解决数据包在传输过程中丢失的问题。TCP每发送一个报文段,就会为这个报文段开启一个定时器,如果定时器溢出时仍然没有收到接收端的应答报文,那么TCP就认为这个报文段在传输过程中丢失,然后重新发送这个报文段。这便是超时重传机制举例:客户端请求发送”and hi”报文段时启动了定时器,..
2020-09-03 09:33:28
1386
转载 C++ 数值最大最小标识符一网打尽,INT_MIN/ INT_MAX/LONG_MIN/LONG_MAX 等等
Constant Meaning Value CHAR_BIT Number of bits in the smallest variable that is not a bit field. 8 SCHAR_MIN Minimum value for a variable of typesigned char. -128 SCHAR_MAX Maximum value for a variable of typesigned char. 12..
2020-08-24 14:58:41
629
转载 C++11模版元编程
1.概述 模版元编程(template metaprogram)是C++中最复杂也是威力最强大的编程范式,它是一种可以创建和操纵程序的程序。模版元编程完全不同于普通的运行期程序,它很独特,因为模版元程序的执行完全是在编译期,并且模版元程序操纵的数据不能是运行时变量,只能是编译期常量,不可修改,另外它用到的语法元素也是相当有限,不能使用运行期的一些语法,比如if-else,for等语句都不能用。因此,模版元编程需要很多技巧,常常需要类型重定义、枚举常量、继承、模板偏特化等方法来配合,因此编写模版元编程比
2020-08-12 23:08:01
1176
转载 MySQL在线模拟平台
MySQL在线模拟平台1. http://sample.jimstone.com.cn/xsql/2. http://sqlfiddle.com/3. https://sqlbolt.com/lesson/select_queries_introduction4. https://www.w3resource.com/sql-exercises/sql-retrieve-from-table.php...
2020-08-10 17:23:10
1233
原创 C/C++在程序中获取CPUID+网卡Mac的几种方法
直接上代码。命令行获取到结果之后需要将16值字符串转换成整数:int tolower(int c){ if (c >= 'A' && c <= 'Z') { return c + 'a' - 'A'; } else { return c; }}unsigned long htoul(char s[]){ int i; unsigned long n = 0; if (s[0] == '0' && (s[1]=='x' ||
2020-07-31 21:02:14
1941
1
原创 基于ARM架构的芯片获取CPU信息(cpuID)的多种方法
由于工作的原因,要获取到ARM芯片的cpuid。了解下存储cpu信息的寄存器内容:CPUID寄存器内容:字段名:Implementer(venter 销售ID)|Variant(大版本号) | Architecture(架构版本)| Part Num(产品代码)|Revision(小版本号)基址偏移量: [31-24] | [23-20] | [19-16]
2020-07-31 20:52:30
15959
3
转载 SQL 语法速成手册
本文针对关系型数据库的一般语法。限于篇幅,本文侧重说明用法,不会展开讲解特性、原理。一、基本概念数据库术语 数据库(database)- 保存有组织的数据的容器(通常是一个文件或一组文件)。 数据表(table)- 某种特定类型数据的结构化清单。 模式(schema)- 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。 列(column)- 表中的一个字段。所...
2020-07-06 09:17:02
211
原创 网络编程——C++实现socket通信(TCP)高并发之epoll模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()epoll_create() 高并发poll模式epoll_ctl()epoll_wait()accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下epol
2020-06-29 14:15:49
6552
2
转载 epoll中epoll_data_t 中fd和ptr的用法
文章是网上内容总结,为了自己下次好找,所以写到自己博客里边了。typedef union epoll_data {void *ptr;int fd;__uint32_t u32;__uint64_t u64;} epoll_data_t;struct epoll_event {__uint32_t events; /* Epoll events /epoll_data_t data; / User data variable */};epoll_data中fd存放文件描述符,所以我们一
2020-06-26 20:36:12
2150
转载 epoll详解及优点
epoll详解更详细的讲解-->【Linux学习】epoll详解什么是epoll? epoll是为处理大批量句柄而作了改进的poll, 是性能最好的多路I/O就绪通知方法; 只有三个系统调用: epoll_create, epoll_ctl, epoll_wait; epoll_ctl - epoll的事件注册函数,它不同于select()是在监听事件时告诉内核要监听什么类型的事件,而是在这里先注册要监听的事件类型; epoll的工作原理 epoll同样只告知那些就绪的文件描
2020-06-26 18:22:15
2510
原创 网络编程——C++实现socket通信(TCP)高并发之poll模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()poll() 高并发poll模式accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下poll函数用法。跟select功能类似,可以设置的同时监听上限会更多,
2020-06-19 16:43:49
1704
原创 网络编程——C++实现socket通信(TCP)高并发之select模式
相关链接:TCP连接与释放、网络编程——C++实现socket通信(TCP)相关函数:服务端:socket()bind()listen()FD_ZERO()等辅助函数select() 高并发select模式accept()read() 或 recv()等write() 或 send()等close()客户端:socket()connect()write() 或 send()等read() 或 recv()等close()着重说明下select函数及辅助函数用法说明。
2020-06-18 11:35:22
3603
1
原创 网络编程——C++实现socket通信(TCP)
相关链接:TCP连接与释放相关函数:服务端:socket()bind()listen()accept()read()write()close()客户端:socket()connect()write()read()close()注意:每当服务端连接断开后,废话不多说,上源码!服务端TCP_Server.cpp#include <stdio.h>#include <sys/types.h>#include <sys/socket.h
2020-06-10 16:09:23
16045
3
MFC实现高仿画板、绘图软件功能(带详细注释)
2018-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人