pve下crontab

2024-9-18 学长

因为pve是基于debian的平台并且直接运行就是root

所以没有用户crontab

crontab -l 并没有反应。。。

改etc的配置

vi /etc/crontab


# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

然后按照上面的格式输入需要循环运行的指令

:wq

保存

然后重启crontab服务

/etc/init.d/cron restart

参考

https://forum.proxmox.com/threads/correct-way-to-edit-cron-jobs.119463/

但是貌似推荐还是crontab -e

评论(0) 浏览(11)

windows下装unsloth,deepspeed==0.15.1

2024-9-11 学长

https://github.com/leejohannes/unsloth_Windows_conda

思考过程很混乱,请参考上面发在github上的安装过程。

目前按照

https://github.com/unslothai/unsloth

提示的

xfrom安装不到合适的版本


pip install torch torchvision torchaudio triton

然后triton也没有合适的windows版本而且从2.0版本就开始这样了

https://blog.csdn.net/ddrfan/article/details/130127401

https://hf-mirror.com/madbuda/triton-windows-builds

也有人放了所谓的3.0.0,我没试。。。

https://github.com/triton-lang/triton

发现也是不支持windows但是脚本中又是有ps1之类的windows下的环境设置文件


git clone https://github.com/triton-lang/triton.git;
cd triton;

python -m venv .venv --prompt triton;
source .venv/bin/activate;

pip install ninja cmake wheel pybind11; # build-time dependencies
pip install -e python
因为是windows就不可能source source .venv/bin/activate


而且实际git下来的包.\.venv\Scripts\Activate.ps1这个位置才对。。。
然后发现运行的时候要找linux的cuda。。。

https://anaconda.org/nvidia/cuda-nvcc/

conda install nvidia::cuda-nvcc

linux上需求的是12.4.99

先在conda下装cuda


https://anaconda.org/nvidia/cuda-nvcc/files

conda上还真有12.4.99版本的

所以改变python/setup.py中download_and_copy中的连接设置

495行:

      f"https://anaconda.org/nvidia/cuda-nvcc/{version}/download/win-{arch[3:]}/cuda-nvcc-{version}-0.tar.bz2")
但是还有路径的反斜杠的错误


490行:

      bin/ptxas

改成r"bin\ptxas"因为一个反斜杠在python中是要输出特殊字符。。。


DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.

呃。。。3.12解压又出问题。。。

https://docs.pythonlang.cn/3/library/tarfile.html

在download_and_copy的解压中加入,filter='data'用来避免警告

还是复制不道文件,解压了。更新新版本中文件路径名

调整相对路径。。。


然后就报LLVM不支持windows的问题了。。。继续处理中

https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/LLVM-18.1.8-win64.exe

但这个是安装文件。。。

https://github.com/vovkos/llvm-package-windows


最后参考这个个在conda 3.11下安装了。。。

https://www.mejump.cn/?p=610

从这里从新开始把

管理员方式运行Anaconda Powershell Prompt

其实不用管理员应该也可以,但是我的conda是安装给全部用户的担心没有管理员会遇到读写问题。。。

conda create -p 'unsloth目录' `
    python=3.11 `
     pytorch-cuda=12.1 `

     pytorch cudatoolkit -c pytorch -c nvidia `
     -y

这是根据官网的


conda create --name unsloth_env \
    python=3.11 \
    pytorch-cuda=12.1 \
    pytorch cudatoolkit xformers -c pytorch -c nvidia -c xformers \
    -y
改的,目录可以是你自己要安装的位置,如果你C盘够用就用官网的-n方式


conda conda 24.7.1中提示安装的是这些包:

  blas               pkgs/main/win-64::blas-1.0-mkl
  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.7.2-haa95532_0
  cuda-cccl          nvidia/win-64::cuda-cccl-12.4.127-0
  cuda-cudart        nvidia/win-64::cuda-cudart-12.1.105-0
  cuda-cudart-dev    nvidia/win-64::cuda-cudart-dev-12.1.105-0
  cuda-cupti         nvidia/win-64::cuda-cupti-12.1.105-0
  cuda-libraries     nvidia/win-64::cuda-libraries-12.1.0-0
  cuda-libraries-dev nvidia/win-64::cuda-libraries-dev-12.1.0-0
  cuda-nvrtc         nvidia/win-64::cuda-nvrtc-12.1.105-0
  cuda-nvrtc-dev     nvidia/win-64::cuda-nvrtc-dev-12.1.105-0
  cuda-nvtx          nvidia/win-64::cuda-nvtx-12.1.105-0
  cuda-opencl        nvidia/win-64::cuda-opencl-12.4.127-0
  cuda-opencl-dev    nvidia/win-64::cuda-opencl-dev-12.4.127-0
  cuda-profiler-api  nvidia/win-64::cuda-profiler-api-12.4.127-0
  cuda-runtime       nvidia/win-64::cuda-runtime-12.1.0-0
  cudatoolkit        nvidia/win-64::cudatoolkit-11.5.0-hfde6d1b_9
  filelock           pkgs/main/win-64::filelock-3.13.1-py311haa95532_0
  gmpy2              pkgs/main/win-64::gmpy2-2.1.2-py311h7f96b67_0
  intel-openmp       pkgs/main/win-64::intel-openmp-2023.1.0-h59b6b97_46320
  jinja2             pkgs/main/win-64::jinja2-3.1.4-py311haa95532_0
  libcublas          nvidia/win-64::libcublas-12.1.0.26-0
  libcublas-dev      nvidia/win-64::libcublas-dev-12.1.0.26-0
  libcufft           nvidia/win-64::libcufft-11.0.2.4-0
  libcufft-dev       nvidia/win-64::libcufft-dev-11.0.2.4-0
  libcurand          nvidia/win-64::libcurand-10.3.5.147-0
  libcurand-dev      nvidia/win-64::libcurand-dev-10.3.5.147-0
  libcusolver        nvidia/win-64::libcusolver-11.4.4.55-0
  libcusolver-dev    nvidia/win-64::libcusolver-dev-11.4.4.55-0
  libcusparse        nvidia/win-64::libcusparse-12.0.2.55-0
  libcusparse-dev    nvidia/win-64::libcusparse-dev-12.0.2.55-0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  libnpp             nvidia/win-64::libnpp-12.0.2.50-0
  libnpp-dev         nvidia/win-64::libnpp-dev-12.0.2.50-0
  libnvjitlink       nvidia/win-64::libnvjitlink-12.1.105-0
  libnvjitlink-dev   nvidia/win-64::libnvjitlink-dev-12.1.105-0
  libnvjpeg          nvidia/win-64::libnvjpeg-12.1.1.14-0
  libnvjpeg-dev      nvidia/win-64::libnvjpeg-dev-12.1.1.14-0
  libuv              pkgs/main/win-64::libuv-1.48.0-h827c3e9_0
  markupsafe         pkgs/main/win-64::markupsafe-2.1.3-py311h2bbff1b_0
  mkl                pkgs/main/win-64::mkl-2023.1.0-h6b88ed4_46358
  mpc                pkgs/main/win-64::mpc-1.1.0-h7edee0f_1
  mpfr               pkgs/main/win-64::mpfr-4.0.2-h62dcd97_1
  mpir               pkgs/main/win-64::mpir-3.0.0-hec2e145_1
  mpmath             pkgs/main/win-64::mpmath-1.3.0-py311haa95532_0
  networkx           pkgs/main/win-64::networkx-3.3-py311haa95532_0
  openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
  pip                pkgs/main/win-64::pip-24.2-py311haa95532_0
  python             pkgs/main/win-64::python-3.11.9-he1021f5_0
  pytorch            pytorch/win-64::pytorch-2.4.1-py3.11_cuda12.1_cudnn9_0
  pytorch-cuda       pytorch/win-64::pytorch-cuda-12.1-hde6ce7c_5
  pytorch-mutex      pytorch/noarch::pytorch-mutex-1.0-cuda
  pyyaml             pkgs/main/win-64::pyyaml-6.0.1-py311h2bbff1b_0
  setuptools         pkgs/main/win-64::setuptools-72.1.0-py311haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  sympy              pkgs/main/win-64::sympy-1.13.2-py311haa95532_0
  tbb                pkgs/main/win-64::tbb-2021.8.0-h59b6b97_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  typing_extensions  pkgs/main/win-64::typing_extensions-4.11.0-py311haa95532_0
  tzdata             pkgs/main/noarch::tzdata-2024a-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.40-h2eaa2aa_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.40.33807-h98bb1dd_1
  wheel              pkgs/main/win-64::wheel-0.43.0-py311haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  yaml               pkgs/main/win-64::yaml-0.2.5-he774522_0
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1

不加xformers因为windowsconda没有单独的xformer频道。。。

之后

conda activate 'unsloth目录'

pip install xformers

xformers-0.0.27.post2-cp311-cp311-win_amd64.whl

torch-2.4.0-cp311-cp311-win_amd64.whl

numpy-2.1.1-cp311-cp311-win_amd64.whl

涉及到这些包,torch要降级成2.4.0,当然目前都是自动的

pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"

官网给的是这个,需要把git的bin目录加到path里面不然找不到git

除了unsloth还安装了hf-transfer-0.1.8 protobuf-3.20.3 sentencepiece-0.2.0 unsloth-2024.8

pip install --no-deps trl peft accelerate bitsandbytes

安装了这些包:

accelerate-0.34.2 aiohappyeyeballs-2.4.0 aiohttp-3.10.5 aiosignal-1.3.1 attrs-24.2.0 bitsandbytes-0.43.3 certifi-2024.8.30 charset-normalizer-3.3.2 colorama-0.4.6 datasets-3.0.0 dill-0.3.8 docstring-parser-0.16 frozenlist-1.4.1 fsspec-2024.6.1 huggingface-hub-0.24.6 idna-3.8 markdown-it-py-3.0.0 mdurl-0.1.2 multidict-6.1.0 multiprocess-0.70.16 packaging-24.1 pandas-2.2.2 peft-0.12.0 psutil-6.0.0 pyarrow-17.0.0 pygments-2.18.0 python-dateutil-2.9.0.post0 pytz-2024.2 regex-2024.9.11 requests-2.32.3 rich-13.8.1 safetensors-0.4.5 shtab-1.7.1 six-1.16.0 tokenizers-0.19.1 tqdm-4.66.5 transformers-4.44.2 trl-0.10.1 tyro-0.8.10 tzdata-2024.1 urllib3-2.2.2 xxhash-3.5.0 yarl-1.11.1

找到下载的trion https://hf-mirror.com/madbuda/triton-windows-builds

然后

pip install triton-2.1.0-cp311-cp311-win_amd64.whl

其实安装顺序没什么区别。。。

deepspeed其实跟unsloth功能类似,只是安装unsloth没必要安装deepspeed,主要解决模型过大显存不够的问题

ZeRO3的情况下,可以将内存“虚拟化”为显存,参考自https://www.cnblogs.com/alphainf/p/18003689

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

pip install deepspeed

还是出library_dir += [os.path.join(os.environ.get("CUDA_PATH"), "lib", "x64")]

找不到cuda

 python -c "import torch; print('Using device: ', torch.device('cuda' if torch.cuda.is_available() else 'cpu'))";

用上面的测试了下显示Using device:  cuda

然后装了cuda驱动重启重新安装。。。

Installed CUDA version 12.6 does not match the version torch was compiled with 12.1, unable to compile cuda/cpp extensions without a matching cuda version.

嗯。。。需要12.1的。。。12.6还装不上去。。。

所以是xformers需要2.4.0的torch所以需要cuda的版本是121。。。

https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

装完要重启的

只装runtime中的libaraies和development就可以了

$DS_BUILD_OPS=0

还有个错误是这个。。。

conda install nvidia/label/cuda-12.1.0::cuda-nvcc

在conda环境下安装cuda12.1。。。。

pip install deepspeed --no-clean

去提示错误的setup.py改掉

$Env:DS_BUILD_OPS = 0

环境变量得这么设置。。。在powershell中

又有新的错误了。。。。

bin\\deepspeed.bat

这个找不到。。。

去里面下载 https://github.com/microsoft/DeepSpeed/tree/master/bin

deepspeed.batds_report.bat

pip install deepspeed --no-clean

去把之前的没装完按照错误提示的temp路径复制进去

然后再在conda powershell中cd过去

运行

python .\setup.py install


评论(0) 浏览(70)

docker安装到非默认路径

2024-9-5 学长

cmd中输入以下

start /w "" "Docker Desktop Installer.exe" install --installation-dir="H:\F\Program Files\Docker" --wsl-default-data-root="H:\F\Program Files\Docker\wsl"


PS的我不知道怎么输入带空格的路径。。。因为必须要用单引号。。。

Ollama安装:

OllamaSetup.exe  /DIR="H:\F\Program Files\Ollama"


Local AI 映射到3002端口因为3001是anything LLM的 并且 anything 对local AI支持最全改端口识别不到啊!!!

docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-aio-gpu-nvidia-cuda-12




docker pull mintplexlabs/anythingllm


# Run this in powershell terminal
$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;

评论(0) 浏览(64)

指令获取本机ip

2024-8-5 学长

通过curl ipinfo.io获得

不加/ip获得更多信息

curl https://v6.ipinfo.io/ip

curl https://ipinfo.io/ip


想手撕cloudflare的api做AAAA

一开始用的docker是 https://hub.docker.com/r/oznu/cloudflare-ddns/


docker run \
  --name ddns \
  --restart=always \
  -e API_KEY=具体API \
  -e ZONE=具体域名 \
  -e SUBDOMAIN=相关子域名\
  -e RRTYPE=A \
  -e CRON="*/15 * * * *" \
  oznu/cloudflare-ddns


上面的A的IPv4跑起来没问题,只是第一次跑的话,ssh指令结束后docker也就停了,得去portainer重新运行下

但是IPv6就更新不到,在oznu/cloudflare-ddns的说明中看到得启用docker的IPv6。。。


docker run \
  --name ddns_v6 \
  --restart=always \
  -e API_KEY=具体API  \
  -e ZONE=具体域名 \
  -e SUBDOMAIN=相关子域名\
  -e RRTYPE=AAAA \
  -e CRON="*/15 * * * *" \
  oznu/cloudflare-ddns

docker做AAAA解析需要docker开启ipv6支持 实际开启很麻烦,默认的桥接就很多限制而且必须是公网分配下来的ip局域网的v6没法做桥接,还得在/80以内 以上说法参考自 https://www.rectcircle.cn/posts/docker-ipv6/



最简单使用“通过 IPv6NAT 方式支持 IPv6”但是得通过robbertkl/docker-ipv6nat。

就很没效率,实际执行的只是corntab 固定时间把 IP地址更新到赛博大善人那


首先旧版本的是使用X-Auth-Email和X-Auth-Key

新版本使用的是Authorization: Bearer


第一步获得zones的ID

api=具体API


剩下的就是怎么处理json的问题了,一般选择的是python,为了做到最简洁尝试使用sed grep awk cut进行处理。。。直接字符串截取,按长度。。。

https://www.cnblogs.com/stevensfollower/p/5093001.html


zones=$(curl -sX GET "https://api.cloudflare.com/client/v4/zones" \
     -H "Authorization: Bearer $api" \
     -H "Content-Type:application/json")
//通过$zones查询到具体的zones的情况,然后通过awk找到对应字符的位置

p1=$(awk -v a="$zones" -v b="id" 'BEGIN{print index(a,b)}')
zones=${zones:$(expr $p1 + 4):32}

//id对应的位置再向后4个,后面的32位就是zone的ID了

或者合并一行写:

zones=${zones:$(expr $(awk -v a="$zones" -v b="id" 'BEGIN{print index(a,b)}') + 4):32}


//获得具体的dns记录

dns_records=$(curl -sX GET "https://api.cloudflare.com/client/v4/zones/$zones/dns_records" \
     -H "Authorization: Bearer $api" \
     -H "Content-Type:application/json")

//继续对DNS记录进行处理找到具体的记录

评论(0) 浏览(253)

ZeroTier 服务的iptables 设置

2024-6-21 学长

iptables -A INPUT -i zt+ -j ACCEPT

iptables -A INPUT -i ens33 -p udp --sport 9993 -j ACCEPT

service iptables save


ip6tables -A INPUT -i zt+ -j ACCEPT

ip6tables -A INPUT -i ens33 -p udp --sport 9993 -j ACCEPT

service ip6tables save


zt+ 因为每次加入不同网络生成的interface名字根本不同。。。

说白了,物理网络上让 udp 9993 开就行了

因为我output只禁了tcp去出去访问80的请求所以没什么output的drop要加


参考:

https://discuss.zerotier.com/t/linux-iptables-and-zerotier/209


评论(0) 浏览(464)

Cadence Genus取消hierarchy合并(ungroup)

2024-4-25 学长 Cadence

强行合并所有层hierarchy

ungroup -all


不合并

不要设置上面的ungroup

set_db auto_ungroup none

或者具体的module中改掉 ungroup_ok


评论(0) 浏览(665)

用Genus synthesis后缺少VDD VSS 问题

2024-4-25 学长 Cadence

您要是有功夫就手动一个个改sch。。。
原则上是因为综合的timing lib中就不带VDD 和 VSS,所以导致的netlist不带vdd和vss
也就是最后生成的sch不带
解决办法
1. genus加生成power的指令,我也不知道具体是什么
2. 手动修改sch
3. 批量修改生成的netlist,记住上面我给出的原理,小的时候。你有这么高速运转的机器进入中国。。。



);
  input

替换成:
, VDD, VSS);
  input VDD;
  input VSS;
  input


把下面的:

));


替换成:

, .VDD(VDD), .VSS(VSS));

导入的时候记得把全局的vdd改掉,反正我不喜欢生成的pin脚带感叹号


评论(0) 浏览(404)

netplwiz 让widows自动登录

2024-3-30 学长 软件


win+r regedit

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device

DevicePasswordLessBuildVersion

从2改成0


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device]
"DevicePasswordLessBuildVersion"=dword:00000000


win+r netplwiz 去掉勾选 确认输入密码



评论(0) 浏览(548)

VMware关机重启自动挂起虚拟机,开机自动恢复挂起的虚拟机

2024-3-27 学长 软件

https://github.com/leejohannes/VM-Windows-Auto-Suspend-and-Autostart


就是添加几个bat脚本,

记录下挂起还有启动的日志

关机的时候通过组策略自动运行记录,

开机的时候逐个恢复


后来发现根本执行不起来

因为windows在执行脚本前已经结束了VMware了。。。

其实VMware默认是要挂起正在运行的虚拟机的

windows关机自动结束进程让这一步在挂起完成前就结束了

去到注册表

\HKEY_USERS\.DEFAULT\Control Panel\Desktop

AutoEndTasks=0

字符串就行

能不能保持自动结束任务呢?

根据这个文章https://smallvoid.com/article/windows-application-timeout.html

Windows can detect when an applications freezes if it don’t respond within a specific time, then prompt user:

[HKEY_CURRENT_USER \Control Panel \Desktop]
HungAppTimeout = “2500” (Default = 5000, Min = 1, Max = 65536)

Windows can be told to automatically close freezed applications without asking user first:

[HKEY_CURRENT_USER \Control Panel \Desktop]
AutoEndTasks = “1” (Default = 0, Enable = 1, Disable = 0)

Windows can force close applications at shutdown which don’t close within a specific time :

[HKEY_CURRENT_USER \Control Panel \Desktop]
WaitToKillAppTimeout = “10000” (Default = 20000, Min = 1, Max = 65536)
65536看着很多实际上是ms。。。也就是最多。。。65s如果虚拟机比较多全部挂起也是很难实现的


评论(0) 浏览(523)

最好的文本编辑器 gvim

2024-2-20 学长 软件


https://www.vim.org/download.php


在安装目录中_vimrc 修改,需要管理员权限


set nu!

set guioptions=egmrLTbl
set langmenu=en_US

let $LANG = 'en_US'


设置默认显示行号

设置默认显示底边滚动条

设置默认显示左侧滚动条

设置默认菜单语言为英文

设置默认语言为英文


评论(0) 浏览(434)

手机版 | RSS | FEED

苏ICP备16066175号