我的网站大全
写在前面
收录了个人喜好觉得品味好的网站(也有一些小工具),
如果有其他好的建议也欢迎提出,非常感谢。
不定期更新
带目录边栏(电脑上可看):https://www.aispacewalk.cn/docs/other/awesomeweb
github开源仓库地址: https://github.com/sanbuphy/my-awesome-cs
基础素质要求(参考NJU-PA )
提问的艺术
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
不像弱智一样提问
https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways/blob/master/README.md
部分内容出自以下参考网站,也欢迎关注他们
PPRP:
https://www.cnblogs.com/pprp/p/8880493.html
如需转载请注释原出处即可,谢谢
数学
机器学习相关数学基础
李航统计学习基础第一章补数学基础 只需要第一张 补基础,其他有问题再找
Deep Learning An MIT Press book参考第一章即可,中文版在这或者直接下载附件中dlbook_cn_v0.5-beta。
概率论与数理统计
陈希孺 概率论与数理统计基础 参考课程视频地址
【概率统计课程学习总结】1. 台大概率与台湾交通大学统计课 - 奶油煎蛋红烧肉的文章 - 知乎 https://zhuanlan.zhihu.com/p/86071634
台湾大学 - 頑想學概率:機率一 (Probability (1))
台湾大学 - 頑想學概率:機率二 (Probability (2))
台湾交通大学 - 高等統計學 Advanced Statistics
线性代数
Linear Algebra for Everyone 图解
https://github.com/kenjihiranabe/The-Art-of-Linear-Algebra
矩阵求导入门 或者你也可以参考我整理的文章:
https://sanbuphy.github.io/p/矩阵求导简易入门手册/
线代启示录(一位掌握了线代灵魂的老师)
immersive linear algebra 线性代数可视化
http://immersivemath.com/ila/index.html
新MIT 线性代数 18.065 by Gilbert Strang
https://www.bilibili.com/video/BV1a7411M7wH?p=1&vd_source=a6509cab8ccb8b81d6a70af693cc008f
CS大类
CS自学指南【必看】
【北美名校CS课程集锦】2.加州大学伯克利分校CS课程全集 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/102083014
Quick Reference开发人员速查表(各种语言、脚本、常用工具的命令速查)
基本操作
GDB、VIM、GIT、SHELL等常见linux操作基础(慢慢来,在使用中学
- The Missing Semester of Your CS Education 中文版(强烈推荐)
- 南大PA教程最下面的一些简单入门和材料
https://nju-projectn.github.io/ics-pa-gitbook/ics2021/index.html
- 命令行的艺术(总结了各种命令行下相关好物)
- 如何学习写shell脚本(封装)可参考的项目:
https://github.com/sanbuphy/vimplus/blob/master/install.sh
- shell和程序开头的字符画LOGO生成工具
https://tools.kalvinbg.cn/txt/ascii
系统相关及系统信息相关
ubuntu实体机快照:
https://blog.csdn.net/wf19930209/article/details/104236358
ubuntu循环依赖问题:
在安装某些东西的时候,你很可能会遇到循环依赖问题,这里慎重降级!!!!除非是必需品。操作不当很容易直接把服务/内核挂了,此时最好的办法是开个docker。(尤其是看到lib XXX的时候要小心)
如何开机自动挂载新硬盘(非ubuntu安装硬盘)
https://blog.csdn.net/qq_27370437/article/details/117806294
获取CPU的性能信息和常见信息,涵盖x86/arm等多硬件
https://github.com/pytorch/cpuinfo
如何维护和切换gcc与g++代码(两种方案)
最简单的,通过设置不同优先级并切换即可:
# https://www.cnblogs.com/haiyonghao/p/14440283.html
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
# 设置gcc-5的优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
# 修改系统中的默认gcc版本
sudo update-alternatives --config gcc
#如果想要根据优先级切换gcc版本,可以输入这个后在输入前面设定的数字
sudo update-alternatives --config gcc
https://blog.csdn.net/FX677588/article/details/78681325
https://cloud.tencent.com/developer/article/1430839
如何及时获取可视化的CPU频率和使用率信息:(Linux 查看CPU当前运行频率和温度)
sudo pip install s-tui
sudo s-tui
如何打造Ubuntu Togo 利用虚拟机
https://blog.csdn.net/afsafasfa/article/details/125782222
改变ubuntu swap大小
https://zhuanlan.zhihu.com/p/222512751
多线程并发解压缩文件
https://zhuanlan.zhihu.com/p/389817246
pigz -k your_file_name # 压缩文件
tar -cvf - dir1 dir2 dir3 | pigz > output.tar.gz # 压缩文件夹
unpigz -d your_file_name.gz
git相关,git指南
- 通过聊天的感觉入门并熟练git
https://wkevin.github.io/GitChat/gitchat.html#round-1-起步
- git常见操作整理
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
- 简单的git ssh秘钥教程
https://blog.csdn.net/helloasimo/article/details/123778112
- 添加了SSH密钥,git推送/拉取时要求验证
https://blog.csdn.net/qq_37435462/article/details/122240506
- 简单的pr教程
https://mmcv.readthedocs.io/zh_CN/latest/community/pr.html
- github linux下的desktop版
https://github.com/shiftkey/desktop/releases
- git的rebase的使用说明(可用于合并多次commit,修改commit等情况)
https://www.jianshu.com/p/4a8f4af4e803
- git中文乱码问题解决
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8
ubuntu常见疑难解答
-
快速下载ubuntu镜像: 找到官网下载链接后使用wget下载
-
简单安装双系统
1 、安装windows(因为windows的boot优先级比较高)
2、安装ubuntu,他能检测到和windows并存的状态,选择那个安装即可
-
简单更换ubuntu镜像源
- Settings→About→Software Updates→Download from
- 选择其他服务器,然后找到中国,选择进行测试以便找到最快的站点。
-
sudo apt-get update: 0% [正在等待报头]问题的解决(参考https://article.itxueyuan.com/XP2rn)
- 先断网然后找到Settings→About→Software Updates关闭所有下载
- sudo apt-get clean
- 接下来将/etc/apt/source.list文件内容清空并保存
- 恢复网络,将第一步中取消掉的四个选项重新点选然后在最佳国内服务器更新即可。
-
给第三方软件appimage加上快捷方式:https://www.cnblogs.com/HGNET/p/16396589.html
-
ncdu
工具分析磁盘空间占用情况(超好用,如果是wsl,运行ncdu --exclude /mnt
// wsl下排除/mnt (当然,你也可以用 sudo du -d 1 -h | less 进一步分析)
WSL2常见疑难解答
【注! 推荐使用挂载/mnt的系统磁盘进行操作,否则很容易让wsl的虚拟磁盘占用很大,删除后无法释放。若你想要释放则需要参考下面的指定教程】
- WSL入坑指南(很全的资料,包括开发环境的配置)
- windows上安装ubuntu(WSL2):
1、在microsoft下载ubuntu 2、根据下列方式导出并导入镜像,防止占用C盘空间(默认安装在C盘)http://t.zoukankan.com/davidchild-p-15606786.html (用这个方法还可以及时快照保存~
- WSL2常用命令(开启关闭甚至注销等等
https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
- 安装WSL2专用systemctl【目前(2023/02/02)只能用于20.04,请勿在22.04中使用!】(慎重使用,可能会导致pycharm连接出现问题,请先快照后再进行尝试!
https://github.com/DamionGans/ubuntu-wsl2-systemd-script
- WSL中如何使用proxy:(服务器版本的通用方法)
- 第一步 下载:https://github.com/v2fly/fhs-install-v2ray 运行 install-release.sh,然后你可能会在里面发现在下载哪个zip要很久,可以直接wget下来解压即可
- 第二步 启动:直接 run 即可,然后设置一个本地json。 你可以后台运行,也可以在一个终端中运行起来,然后新开一个终端去export ALLproxy之类的就好,参考docker的做法,或者使用proxychains4也可以。)在终端中运行
/usr/local/bin/v2ray run -config /usr/local/etc/v2ray/config.json
即可启动! - 第三步 使用:就当作一个已经监听了某个端口的proxy使用即可
- 注释:当然,为了方便你可以自行改造,使用 /etc/init.d/ 目录中的服务命令 或 service 命令替代systemctl。
- 注意!WSL2经常会与主机时间不同步,这可能会造成很多问题(包括proxy用不了),你最好设置一个启动脚本或自己执行
sudo hwclock -s
强制对WSL2时间进行同步,可使用sudo hwclock
查看WSL的当前时间, - 以防出现奇怪问题你可以经常对WSL做快照:https://blog.csdn.net/weixin_43425561/article/details/115765148
- 改变/增加WSL2的内存、swap空间大小
在C盘的用户主目录下(比如我的是C:\Users\sanbu)创建.wslconfig
文件夹,在里面输入
[wsl2]
memory=8GB
swap=16GB
# 为 WSL 2 虚拟机分配的处理器核心数量
# processors=<number>
在配置设置完之后,在powershell执行wsl --shutdown
命令进行关闭,随后再打开即可(注意,如果你使用了docker-desktop,实际上也是基于wsl2构建的,所以也会影响到的对应环境的资源
- 暴露wsl的服务(桥接):https://www.cnblogs.com/huanliu/p/17161388.html (记得开始要在powershell 中使用
Set-VMSwitch WSL -NetAdapterName 以太网
)此时桥接后可能还不能上网,需要加入8.8.8.8 nameserver
简单启动流程:
Set-VMSwitch WSL -NetAdapterName 以太网
然后运行下列ps1文件
echo "正在解除wsl桥接..."
Set-VMSwitch WSL -SwitchType Internal
echo "正在重启wsl"
wsl --shutdown
wsl --cd ~ -e ls
echo "`ndone"
pause
然后wsl中:
new_ip=新的映射ip
brd=新的映射ip.255
gateway=网关
nameserver=网关
net_dev=eth0
sudo ip addr del $(ip addr show $net_dev | grep 'inet\b' | awk '{print $2}' | head -n 1) dev $net_dev
sudo ip addr add $new_ip/24 broadcast $brd dev $net_dev
sudo ip route add 0.0.0.0/0 via $gateway dev $net_dev
sudo sed -i "\$c nameserver $nameserver" /etc/resolv.conf
- wsl的硬盘空间怎么办?——挂载其他硬盘,如:
sudo mount -t drvfs D: /mnt/d
- WSL怎么释放空间,wsl硬盘压缩虚拟硬盘压缩:https://zhuanlan.zhihu.com/p/521747491
windows常见工具箱
- 有关windows家的镜像源以及VS等的纯净安装文件,以及各种网络工程师能用到的软件程序安装包
- 图吧工具箱(给自己电脑做硬件分析等等
- DISM++ 最好用的windows控制面板工具箱(直接看release部分下载
https://github.com/Chuyu-Team/Dism-Multi-language
- Ubuntu - bash脚本与 Windows - bat 脚本互相转换工具(Bash to Bat Converter
https://daniel-sc.github.io/bash-shell-to-bat-converter/
- windows-linux命令行对照表
https://www.geeksforgeeks.org/linux-vs-windows-commands/
- windows下类似apt这种包管理软件——scoop
https://blog.csdn.net/weixin_45191386/article/details/130662281
- windows kill 指定端口程序
netstat -ano | findstr :<port_number>
taskkill /PID <pid> /F
正则表达式相关
- 正则表达式入门与练习
https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md
- 正则表达式可视化浏览
- 长正则表达式结构可视化
- 常用正则表达式汇总(车牌号手机号姓名IP等等)
http://obkoro1.com/web_accumulate/codeBlack/正则表达式收集.html
docker相关
【重点提示】对于ubuntu,如果你使用第一种命令行的方式安装了docker engine,切记不要安装docker desktop。或者直接就安装docker desktop。否则会找不到原来的镜像和container!这两并不兼容,详情请看官方说明。如果你不小心装了两个,想要恢复原来的docker,直接apt卸载docker desktop即可。
Docker Desktop on Linux runs a Virtual Machine (VM) so creates and uses a custom docker context desktop-linux on startup.
This means images and containers deployed on the Linux Docker Engine (before installation) are not available in Docker Desktop for Linux
- docker的一切:
https://yeasy.gitbook.io/docker_practice/
- docker官方安装教程
https://docs.docker.com/desktop/install/ubuntu/
安装结束后记的:sudo chmod a+rw /var/run/docker.sock
(不过可能在一些用户权限限制比较多的电脑这样可能端口映射后对端口请求可能还是会出现一些问题,你可以通过设定为777权限解决。)
- 使docker能够避免输入sudo(通过 docker info检查是否要sudo才可输出)
https://www.yisu.com/zixun/139260.html
- windows下安装docker desktop到其他硬盘(主要是mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker")以防空间占用过多
参考:https://blog.csdn.net/liangcsdn111/article/details/110236655
- 在WSL2下使用docker
【你只需要安装docker desktop然后参考这个教程,点点就能用了】:
https://dockerdocs.cn/docker-for-windows/wsl/
可以很方便使用!无需按照命令行安装即可使用docker!
- 安装docker后启动时遇到:Failed to connect to bus: Host is down(我在WSL2遇到,非必要不使用,最好还是先安装一下systemctl确保能用)
# 运行下列操作即可,然后 sudo systemctl daemon-reload
# https://gist.github.com/alyleite/ca8b10581dbecd722d9dcc35b50d9b2b
sudo apt-get update && sudo apt-get install -yqq daemonize dbus-user-session fontconfig
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
exec sudo nsenter -t $(pidof systemd) -a su - $LOGNAME
snap version
- NVIDIA docker的使用(用文中方式启动docker的插件,然后用docker run gpu启动,或者参考下面的教程安装和启动。)(有时候update出问题是nvidia网络抽风了。。别急
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
- docker换源(拉镜像极大加速)
https://blog.51cto.com/u_13281972/2997681
- 修改Docker默认镜像和容器的存储位置
https://www.cnblogs.com/chentiao/p/16963647.html
- docker pull images — use proxy
https://www.lfhacks.com/tech/pull-docker-images-behind-proxy/
- docker — use proxy(在容器内)(记得主机listen 172或者0.0.0.0
方法一:
-it 以及加上了host命令进入docker后(比如:)
nvidia-docker run --name paddle-test -v $PWD:/paddle --network=host -it [registry.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.2-cudnn7-dev](http://registry.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.2-cudnn7-dev) /bin/bash
此时在内部可以看到两个网卡,我们可以监听172ip的某个端口,然后使用
export ALL_PROXY="http://172.17.0.1:8888/"
export ALL_PROXY=socks5://172.17.0.1:1088
即可使用proxy。(有时候还不够用,可以加上https的)(不需要host network 只需要bind 172 即可使用)
export http_proxy="http://172.17.0.1:8888/"
export HTTP_PROXY="http://172.17.0.1:8888/"
export https_proxy="http://172.17.0.1:8888/"
export HTTPS_PROXY="http://172.17.0.1:8888/"
docker build proxy:
- make sure your proxy bind 172.17.0.1 and port (e.g. 8888)
- add that in dockerfile
ENV http_proxy "http://172.17.0.1:8888/"
ENV HTTP_PROXY "http://172.17.0.1:8888/"
ENV https_proxy "http://172.17.0.1:8888/"
ENV HTTPS_PROXY "http://172.17.0.1:8888/"
- run it
**方法三:**运行终端版的v2ray之类的软件,后台运行后直接使用proxychains4的http代理即可(很多不能走socker)
注释:如果而在终端遇到curl之类的奇怪的http问题,请env|grep查看有无奇怪的环境变量或者关闭proxy的系统proxy功能。因为无需开启也可以操作。
- docker磁盘占用查看与缓存清理
https://blog.csdn.net/m0_67390963/article/details/126327604
- 利用docker调试代码,以apollo为例:
https://zhuanlan.zhihu.com/p/468146522
- 导出自己的镜像和导入:
https://yeasy.gitbook.io/docker_practice/container/import_export
- 提交自己的镜像到dockehub:(你也可以参考上面提到的docker的一切,里面什么都有。
可参考 https://blog.csdn.net/butterfly5211314/article/details/83068807
- windows下docker挂载本地文件夹(利用powershell或者cmd之类的)
-v /d/PycharmProjects:/test (注意一下这个形式) -v挂载本地文件夹到docker容器中,在容器中修改/test文件夹中的内容也就是修改D:\PycharmProjects文件夹中的内容
- docker读写:
docker save example-image > example-image.tar
写:docker load < example-image.tar
前端相关
nodejs下载安装与初始化方法
https://nodejs.org/en/download
https://blog.csdn.net/xuchaoxin1375/article/details/121709299
其他
云服务器相关:
(AWS)boto3使用教程用法
https://blog.csdn.net/weixin_46105038/article/details/118220439
不知道变量怎么命名就可以看看:
https://unbug.github.io/codelf/
电脑装机:
去bilibili随便搜前二的 多看几遍
我自己的配置:
凯侠1T :375
铭瑄3060 12g 2349 (记得卡扣先打开再插显卡
金白达三星16G*2 389
爱国者机箱 114 (机箱大比较好处理线
海韵金牌全模组650W 599
散热器利民ax120rse 69.9
13490F + B660M WIFID4重炮手 华硕 2429
gradio的proxy冲突了怎么办?
——设置不同的监听地址,比如gradio可以直接监听ip或者172的容器地址,不需要127.0.0.1
其他有趣的文章
有关linux的基础讲解,有配图和自己的理解,推荐一读。
https://segmentfault.com/u/public0821
一个对cpu和网络了解都非常深入的工程师
其中最好的一类文章(有关cpu的讲解)https://plantegg.github.io/2021/06/01/CPU的制造和概念/
一个关于各种生成网络和编码器小论文通读的博主,有些写的还可以(比较基础入门)
https://medium.com/@falconives
java相关技术栈资料大全博主(还有一些三大件相关的资料,还挺多
http://learn.lianglianglee.com/
Linux性能分析工具大全(Linux/BSD性能专家Brendan Gregg)
https://www.brendangregg.com/linuxperf.html
面向程序员的各类调用库清单(主要是C/C++ PYTHON)
https://github.com/programthink/opensource
GitHub中文排行榜
https://github.com/GrowingGit/GitHub-Chinese-Top-Charts
GitHub 上有趣、入门级的开源项目
https://github.com/521xueweihan/HelloGitHub
美化自己的github界面
https://zhuanlan.zhihu.com/p/454597068
github.com/rzashakeri/beautify-github-profile
https://bowenyoung.cn/posts/githubBeautify
社区制作的一键生成界面:https://rahuldkjain.github.io/gh-profile-readme-generator/
公众号 / 真没什么逻辑的作者(为什么这么设计系列文章)涉及网络、数据库、操作系统等
https://draveness.me/whys-the-design/
Roadmap to becoming a developer
https://github.com/kamranahmedse/developer-roadmap
小林 x 图解计算机基础(国内最好的八股文整理之一)(图解网络和操作系统)
linux inside 讲解了一下linux内部运行机制,比如Program startup process in userspace
https://0xax.gitbooks.io/linux-insides/content/Misc/linux-misc-4.html
苏剑林的空间(从数学再到NLP再到天文都有涉猎
技术博文《Chromium 渲染流水线——字节码到像素的一生 》 http://t.cn/A60JwWOw 本文回顾了现代浏览器架构和Chromium进程模型的基础知识,以及Chromium 中渲染流水线的整个过程。所谓渲染流水线,就是从接受网络的字节码开始,一步步处理这些字节码把它们转变成屏幕上像素的过程
深入了解现代 web 浏览器系列文章
计算机的核心 CPU 和 GPU、在进程和线程上执行程序
操作系统与体系结构
南京大学计算机基础(袁春风)CSAPP的青春版,但比csapp好懂得多(强烈不建议一开始就读csapp
赶时间可以直接看配套书。
https://www.icourse163.org/course/nju-1001625001#/info
前置:南京大学计算机基础实验(做了能让你真的变强)https://nju-projectn.github.io/ics-pa-gitbook/ics2021/index.html
2022 南京大学拔尖计划《操作系统:设计与实现》
(蒋炎岩 我永远的超级无敌酷炫宝藏男神,还有什么好说的呢?没有他我就永远不懂计算机的美丽
当然包云岗老师也是我的男神哈哈哈哈哈哈)
课程主页:http://jyywiki.cn/OS/2022/ (slides、示例代码)
视频地址: https://www.bilibili.com/video/BV1Cm4y1d7Ur/
操作系统(哈工大李治军老师)课件可在下方链接获取。
- 慕课网: http://www.feemic.cn/mooc/icourse163/1002692015#。
- 百度云链接:https://pan.baidu.com/s/1h2aEk6A_DGpXkZvRtNmeUw 提取码:qoll
- 配套实验课:https://www.shiyanlou.com/courses/115
MIT 6.S081: Operating System Engineering
https://csdiy.wiki/操作系统/MIT6.S081/
浙江大学周亚金老师的操作系统课课件(写的很好,有操作和现代的一些规范备注,我很喜欢)
在Schedule中可以获取到全部课件
南京大学软件分析课程:
https://tai-e.pascal-lab.net/pa1.html#_1-作业导览
https://space.bilibili.com/2919428/channel/series
教科书《计算机体系结构基础》(胡伟武等,第三版)的开源版本
https://github.com/foxsen/archbase
【MIT公开课】6.172 软件性能工程
https://www.bilibili.com/video/BV1wA411h7N7/
Online 8086 EMULATOR
https://yjdoc2.github.io/8086-emulator-web/
其他有趣文章:
如何实现一个elf的loader:https://blog.csdn.net/GoolyOh/article/details/119801160
从一个ELF程序的加载窥探操作系统内核:
https://blog.csdn.net/goolyoh/category_11298420.html
如何实现最小的hello world?
https://cjting.me/2020/12/10/tiny-x64-helloworld/
Linux 内核揭密(一系列关于 Linux 内核和其内在机理的帖子。)
https://xinqiu.gitbooks.io/linux-inside-zh/content/
计算机网络学习
课程类待补充
其他文章:
tcp高级疑难汇总案例分析:plantegg.github.io/2021/02/14/TCP疑难问题案例汇总/
这个博主写了网络编程相关的一系列文章:https://juejin.cn/user/862486453028888/posts
其中我最喜欢:Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化:
https://juejin.cn/post/7112826654291918855
有前端Nginx服务器在线配置,及大改善修改nginx的配置体验
https://www.digitalocean.com/community/tools/nginx?global.app.lang=zhCN
项目来源:https://github.com/digitalocean/nginxconfig.io
数据结构与算法
程序员如何准备面试中的算法
https://wizardforcel.gitbooks.io/the-art-of-programming-by-july/content/00.01.html
labuladong 的算法小抄
https://github.com/labuladong/fucking-algorithm
ACWING的课
https://www.acwing.com/activity/
GitHub's largest open-source algorithm library
数据结构与算法可视化
设计模式
一个图文并茂的设计模式学习网站
refactoringguru.cn/design-patterns
高性能计算与编译器
常用MPI、cublas等高性能基础库调用api快速入门
https://docs.hpc.sjtu.edu.cn/app/compilers_and_languages/intel_mpi.html
mlir
LLVM IR入门指南
https://github.com/Evian-Zhang/llvm-ir-tutorial
动手写mlir by strint
http://strint.github.io/220220-mlir/220220-mlir.html
Toy Tutorial : the implementation of a basic toy language on top of MLIR.
https://mlir.llvm.org/docs/Tutorials/Toy/
Kaileidoscope: LLVM Tutorial Chinese version(中文版)
https://kaleidoscope-llvm-tutorial-zh-cn.readthedocs.io/zh_CN/latest/
webgpu
WebGPU Fundamentals
https://webgpufundamentals.org/
wgpu 中文版跨平台开发(Web + App)教程:
https://jinleili.github.io/learn-wgpu-zh/
CUDA编程
CUDA Crash Cours BY CoffeeBeforeArch
https://www.youtube.com/watch?v=2NgpYFdsduY&list=PLxNPSjHT5qvtYRVdNN1yDcdSl39uHV_sU&index=1
官方入门文档
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
适合入门的小型Python编译器项目(包含cuda相关内容)
https://zhuanlan.zhihu.com/p/603352525
cuda学习教程
https://space.bilibili.com/37270391/channel/seriesdetail?sid=1454805
CUDA-Programming-Guide-in-Chinese
https://github.com/HeKun-NVIDIA/CUDA-Programming-Guide-in-Chinese
CUDA C++ Programming Guide
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
CUDA Freshman
of them are from the book "Professional CUDA C Programming"https://github.com/Tony-Tan/CUDA_Freshman
CS344 Introduction to Parallel Programming class code
https://github.com/udacity/cs344
https://www.youtube.com/watch?v=F620ommtjqk&list=PLAwxTw4SYaPnFKojVQrmyOGFCqHTxfdv2
谭升的博客,CUDA编程
https://face2ai.com/program-blog/
很好的各种各样CUDA的优化文章合计强烈推荐
https://github.com/YconquestY/Needle/blob/main/backend.md
MPI通信
如何同时实现高性能并行+分布式计算?| Taichi x MPI4Py - 太极图形的文章 - 知乎 https://zhuanlan.zhihu.com/p/581896682
深度学习大类
NVIDIA环境配置常见问题
- 显卡驱动安装快速方法:
(你也可以在这里下:https://www.nvidia.com/download/index.aspx?lang=en-us)
ubuntu-drivers devices
sudo apt install 输入显示的推荐版本
(如果安装失败了或者重装,请先把原来的依赖删除:sudo apt-get remove --purge nvidia*
- CUDA与cuDNN的安装:(直接官网文档)【警告⚠,如果你需要安装tensorrt,请用deb形式安装cuda安装包,官方建议如果CUDA采用的是deb方式,tensorrt也要采用deb方式,】
注意:a100和3090ti不支持cuda11以下,请装113以上的版本。
教程可参考官网:Archive of Previous CUDA Releases
https://developer.nvidia.com/cuda-downloads
https://developer.nvidia.com/rdp/cudnn-archive
cudnn的官方安装教程(通过tar文件自己cp或者根据教程安装deb)
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
cudnn的卸载可参考:https://zhuanlan.zhihu.com/p/83971195
cuda之类的卸载参考:https://blog.csdn.net/m0_37605642/article/details/119637836
(注意,这里默认是最新版本的,你需要在右下角进入档案选择对应版本安装,或在下面的网页中找到archive)
TensorRT的安装(参考Debian Installation)【警告⚠,如果你需要安装tensorrt,请用deb形式安装cuda安装包,官方建议如果CUDA采用的是deb方式,tensorrt也要采用deb方式】
【不要安装最新的cuda工具包,很可能不支持,一般只支持上一个版本(看清楚对应cuda对应)】
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-debian
- 安装cuda结束后记得把这两个命令加入到~/.bashrc 然后source。
如果你想要修改版本,可以修改cuda的软链接(选择其他版本的cuda),或者在bashrc中的cuda后面加上版本,如cuda-11.2
(具体的安装和卸载也可以参考https://flywine.blog.csdn.net/article/details/81879514)
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
解决nvcc版本不一致问题(可能的方法,更换runtime映射
https://qiyuan-z.github.io/2022/01/06/解决nvidia-smi和nvcc显示信息与所安装CUDA版本不一致问题/
解决cudnn找不到 问题(软连接到系统库)
https://blog.csdn.net/qq451882471/article/details/106967942
CUDA GPG Repository Key
https://forums.developer.nvidia.com/t/notice-cuda-linux-repository-key-rotation/212772
Tensorrt X docker环境搭建(现在(20221228)tensorrt-ubuntu已经支持deb安装,如果tar就选linux的)
https://blog.csdn.net/hxj0323/article/details/115859174
update后nvidia报GPG相关问题(我在18.04的docker遇到):
echo 'deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /' > /etc/apt/sources.list.d/cuda.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $(加入报错的密钥)
apt update
- 解决类似
error code is libcuda.so: cannot open shared object file: No such file or directory
的问题:https://stackoverflow.com/questions/54249577/importerror-libcuda-so-1-cannot-open-shared-object-file
# 此处我们搜索的是libcuda.so
sudo find /usr/ -name 'libcuda.so' #有时候搜索的是libcuda.so.*
# 这一步是为了找到所在文件夹,我在WSL中搜到了几个文件夹下,我任意加入一个文件夹到LD_PATH:
# 假如前一步发现libcuda的位置为:/usr/lib/wsl/lib/libcuda.so
# 告诉系统要在这里找,你也可以把这句话加入到~/.bashrc然后source ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/targets/x86_64-linux/lib
NVIDIA显卡运行时状态监控不错的python库(实时监控)
https://github.com/XuehaiPan/nvitop
windows下安装CUDA工具链相关如果出现VS拓展安装失败的问题,可以先卸载本地安装的所有VS相关软件,然后重新安装官方的最新版本的VS就可以。
NVIDIA显卡计算能力?(如sm75)查询:https://developer.nvidia.com/zh-cn/cuda-gpus
理论基础(时间少直接看李沐/李宏毅)
周志华
南瓜书主页
https://datawhalechina.github.io/pumpkin-book/#/
周志华《机器学习》手推笔记 by Sophia-11
https://github.com/Sophia-11/Machine-Learning-Notes
周志华《机器学习》笔记(主要是文本) by yv.l1.pnn
https://zhuanlan.zhihu.com/p/134089340
深度学习网课
- 李宏毅老师的课程主页:
https://speech.ee.ntu.edu.tw/~hylee/index.php 这是李老师的个人主页,可以找到每年ML的课程主页,然后获取作业代码和Kaggle链接
- 李宏毅《机器学习》:
https://www.bilibili.com/video/BV1Ht411g7Ef
- 李宏毅机器学习笔记:
https://gitee.com/datawhalechina/leeml-notes
- 李宏毅《机器学习/深度学习》2021课程:
https://www.bilibili.com/video/BV1JA411c7VT?p=34
- 李宏毅2022课程:
https://www.bilibili.com/video/BV1JK4y1D7Wb/
李沐动手学深度学习(适合速成,打基础建议李宏毅)
李沐深度学习精读
https://github.com/mli/paper-reading
伯克利 CS 182 深度学习:深度神经网络设计、可视化与理解
Home: https://cs182sp21.github.io/
https://www.bilibili.com/video/BV1PK4y1U751
深度学习动手项目
小土堆 pytorch学习
https://space.bilibili.com/203989554
霹雳吧啦Wz 图像分类篇章 以及目标检测
https://space.bilibili.com/18161609/channel/collectiondetail?sid=48290
手写YOLO系列和fast rcnn系列:
https://www.bilibili.com/video/BV1JR4y1g77H
https://space.bilibili.com/472467171
学会自己训练一个esrgan等超分辨率模型
https://www.youtube.com/watch?v=iH7-eYlf7eg