在一系列的努力操作下,我终于能读到心心念的计算机图形学了。但不得不说,我找导师的时间确实太晚了,应该在通知拟录取的时候就开始找老师了(其实最好就是在你准备考研的时候,去联系心仪的导师)。不过怎么说,现在算是稳定下来了。
刚到实验室,研究所给了台还算一般的工作站,双路E5-2670(垃圾佬u),Quadro M5000,64GG DDR4。普通的STAT固态硬盘,这就有点拉了,以后遇到IO瓶颈再升级。总的来说炼点小丹不在话下。
就我的一向习惯,在拿到一台机子的时候,首先就是全盘格式化重装一边Windows 11,然后才开始配置环境。主要是避免一些前任留下的奇怪问题。下面主要分三个部分讲,系统环境、编程环境、科研工具。这篇文章也算是一个记录,用于统一以后不同电脑的环境,打造家的味道。
系统环境
首先就是登录巨硬的账号,主要是可以自动同步一些Windows 11的设置。接下来就是进入正题了。
墙🔨
总得看看更广阔的世界,是吧(逃
这里使用Clash-Windows作为自己搭好的梯子的前端,选用它有两点原因:界面好看、支持多种不同协议的代理。至于如何搭建梯子,在这就不赘诉了。
WSL2
这里因为安装的是 Windows 11 所以可以直接根据下面的流程安装 WSL2
- 控制面板—>程序—>查看方式:大图标(在界面的右上角)—>程序与功能—>启用或关闭 Windows 功能—> 勾选Hyper-V和适用于 Linux 的 Windows 子系统—>确定,然后重启电脑
- 这里使用yuk7/ArchWSL作为我们的 wsl 系统。首先在仓库的 Release 中下载 Arch.zip,然后解压到一个具有权限的文件夹中,这里最好是解压到速度最快的硬盘(毕竟是系统、吃4K随机存储的速度),这里假设路径是
path/to/arch - 然后在
path/to/arch中运行Arch.exe,这里建议安装好后添加一个新用户,然后运行在此目录下打开 cmd 运行命令Arch.exe config --default-user username,把username换成刚刚创建的用户名。最后在给他root的权限,以方便安装 package - 最后运行
wsl --update和wsl --set-default-version 2和wsl --set-version Arch 2来将 Arch Linux 升级成 wsl2
在先版本的Windows 11下的WSL2,可以支持Linux的图形界面功能,同时还可以在WSL2侧调用GPU,这也是在WSL2下使用GPU进行炼丹的必要条件。
在WSL下调用cuda,则需要安装最新的显卡驱动,以及在wsl侧安装cuda,这里可能会出现一个链接错误:
/usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link解决方法则是按照这条评论解决。
libcuda.so.1 is not a symbolic link · Issue #5548 · microsoft/WSL
This is cross-post of Ubuntu bug 1886532 which is pending investigation. On Windows 10 build 20161 WSL2 running sudo apt upgrade results in warning: "libcuda.so.1 is not a symbolic link" It appears...
编程相关
VS Code
作为宇宙扩展性第一的编辑器,把它弄成一个好用的IDE通常需要自己慢慢调插件。我这里安装了如下插件:
- One Dark Pro(对眼睛最好的主题)
- GitLens(团队协作扯皮必备,点一下blame,直接找出代码中的💩是谁拉的,大概率是自己拉的)
- C/C++,CMake,CMake Tools,C++ TestMate(写C++必备)
- LaTeX Workshop(搞学术必备)
- TabOut(按 Tab 可以跳出括号,非常方便)
- Python,Pylance(用于Python开发,后者是更强大的language-server)
- Remote-SSH(用于远程SSH开发)
- WakaTime(记录写代码的时间)
- Gitmoji(方便在commit的时候加入emoji)
- Live Share(远程协助工具,
可以结对编程) - Path Intellisense(方便路径补全)
- Better Comments(高亮注释,方便一眼看出注释的类型)
此外,还为系统安装Hasklig字体,用于渲染连字(Ligatures),让代码看起来更有味道,然后在VS Code的"editor.fontFamily"设置前面加上Hasklig
C/C++ 环境
在 Windows 上 Visual Studio 算是宇宙第一 IDE 了,但这里还是采用了 VS Code 进行编码,CMake 来作为构建工具,并以巨硬提供的Visual Studio 2019 生成工具来进行我们的开发,有时还会使用Clang作为前端。这样的好处是,我可以很清晰地控制着整个项目,同时能实现跨平台的编译。缺点也很明显,想要开发体验很好,得做很多探索性的工作。
对于C++环境中的包管理,这里强烈安利 xmake ,这是一个开箱即用的 C++ 包管理。配合其输出的 build_commands.json 可以轻松地结合 clangd - Visual Studio Marketplace 来达到丝滑地C++编程。
炼丹环境
这里以N卡举例,A卡请自行查看官方文档。首先下载并安装 N卡的cuda 驱动然后下载Python +Pytorch,当然我这里在WSL2下进行炼丹,因此python,pytroch都是在ArchLinux下安装。
在WSL2下使用GPU时可能会有如下问题
"libcuda.so.1 is not a symbolic link"根据这一条评论即可解决。
libcuda.so.1 is not a symbolic link · Issue #5548 · microsoft/WSL
This is cross-post of Ubuntu bug 1886532 which is pending investigation. On Windows 10 build 20161 WSL2 running sudo apt upgrade results in warning: "libcuda.so.1 is not a symbolic link" It appears...
学术工具
要写出好看的论文,有四要素:研究能力、文字功底、排版能力、绘图能力。前两项主要是个人的东西,而后两个我们可以用工具来赋能。
LaTeX
作为强大的排版工具,LaTeX一直是作为优秀科研工作者的首选,但是因为其非常陡峭的学习路径,让人望而却步。真希望有一天我们只用关心内容,排版的事情交给专业的人来做就好了(MarkDown其实就是想做这个事情)。
这里有两个选项来安装LaTeX,分为 Windows 环境和 Linux 环境,其实这里推荐使用后一种,主要是可以利用 Linux 的包管理系统为它更新,但缺点就是需要安装中文字体。
pacman -S texlive-most texlive-lang texlive-bibtexextra biber这里分别安装了,LaTeX的核心部分、语言扩展、引用扩展之后用 VS Code 以 wsl 的形式打开你写论文的文件夹,然后添加如下设置,来把编译文件同一放在文件夹 out 里。
.vscode/settings.jsonjson{ "latex-workshop.latex.outDir": "%DIR%/out" }
此后,你编译的 pdf 文件位于out文件夹中。
文献管理 Zotero
Zotero | Your personal research assistant
Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share research.
Zoter是一个免费的文献管理工具,同时支持一些不错的插件,下面是必安装的插件
- zotero-scihub用于自动为新增的文献下载相应的pdf
- ZotFile将附件变为附件,用来配合 OneDrive、坚果云等云存储服务,以达到附件同步效果。
- Better BibTeX for Zotero用于生成信息更加丰富的 bib 文件,配合 LaTeX 使用
在安装完上述插件后,需要对 Zotero 进行一些设置
- 编辑—>首选项—>同步,在这里登录你的zotero账号,并关掉同步文件中的附件这一选项
- 编辑—>首选项—>高级—>文件和文件夹—>链接附件的根目录,这里选择 OneDrive 中自行新建的一个Zotero文件夹
- 工具 → ZotFile Preference... → General Settings → Location of Files → Custom Location,这里选择你 OneDrive 中的 Zotero 文件夹
- 工具 → ZotFile Preference...→ Tablet Settings → Location of Files on Tablet → Base Folder,这里在 Onedrive 中的 Zotero 下面新建一个 Zotero_tablet 文件夹,并选择这个文件夹
- 编辑 → 首选项 → SciHub → 关闭自动下载,因为可能重复下载
OneNote
这个就不用多说了,配合 Surface 能够很好的记录、管理自己的笔记、想法。
结语
打造一把趁手的武器,去练一身屠龙之技,(龙早就被人屠完了,笑