CUDA核心概念与内存层次
GPU 的线程组织与内存层次是理解 CUDA 性能的基础。本文用表格、Mermaid 图和代码示例,梳理 Kernel、Warp、合并访存与 bank 冲突这些概念。
GPU 的线程组织与内存层次是理解 CUDA 性能的基础。本文用表格、Mermaid 图和代码示例,梳理 Kernel、Warp、合并访存与 bank 冲突这些概念。
本文记录在 Ubuntu 24.04 + H100 上从零跑通 CUDA 代码的过程,包括环境配置和常见问题。
如果把 CPU 比作“多才多艺的总管”,GPU 更像“高效的流水线工厂”:CPU 擅长复杂分支与少量任务的低延迟处理,GPU 擅长大量相同/相似任务的高吞吐处理。本文先给出关键概念,再用 CPU 对比串起 GPU 的架构、执行模型、内存层次与性能要点。
包管理器是操作系统里负责安装、删除、查询和管理软件包的工具,可以类比手机上的应用商店。本文从概念到实操、从单机到团队,整理一份跨发行版的包管理学习大纲与命令速查。
选择开源许可证时,通常需要回答三个问题:能否商用、能否修改后闭源、是否附带许可声明。本文用一张速查表和几条决策准则,帮助快速选定合适的许可证。
加密需要在安全与效率之间权衡。把数据加密比作锁门,会面临一个两难选择:
有没有一种方法,能让我们同时拥有对称加密的“快”和非对称加密的“稳”呢?答案是肯定的,这就是我们今天要探讨的主角——混合加密 (Hybrid Encryption)。
在团队协作和日常开发中,rebase 和
cherry-pick 是 Git
中非常强大的两个命令。它们不仅能让你的提交历史更加清晰,还能灵活地“搬运”代码。本文结合一张可视化分支图,带你深入理解这两者的用法与区别,并掌握团队协作中的最佳实践。
如果你是一个经常使用 shell 的用户,几乎肯定会在主目录下有一个
.bash_profile 或 .bashrc
脚本,通常包含各种调整,比如设置环境变量(将某个目录添加到
$PATH)、告诉 shell 做聪明的事情(如
set -o noclobber)以及为命令添加各种别名(如
alias please=sudo)。
(如果你真的很有条理,你会把所有点文件都放在某个仓库中,这样你就可以在所有工作的机器上保持设置同步。)
无论如何,我怀疑很少有人知道 .bash_profile 和
.bashrc
这样的文件实际上什么时候被执行。当我刚开始时,我只是按照别人的建议把东西放在
.bashrc 中,然后当它不工作时,就放到
.bash_profile 中。我可以在这里停下来,只描述 bash
的启动过程(尽管它很愚蠢),但有一个复杂的情况是,我在几年前切换到了
zsh(并且没有回头),但偶尔会在没有安装 zsh 的机器上使用 bash。
在Linux系统中,任务控制是每个用户都需要掌握的核心技能。无论是运行长时间的计算任务、管理多个进程,还是在SSH连接断开后保持程序运行,都离不开任务控制技术。本文将从基础概念出发,系统介绍Linux任务控制的完整知识体系,为你提供一份实用的技术指南。
在 Linux 或 macOS
系统中,以点(.)开头的文件和文件夹统称
dotfiles(如
.bashrc、.gitconfig),保存着终端提示符、编辑器(如
Vim/Neovim)、窗口管理器等工具的配置。随着配置变多、跨设备使用变常见,如何管理这些散落在主目录各处的文件就成了一个问题。