本章将着重介绍如何更清晰的整理提交记录,git tag和git describe的用法,以及一些复杂的样例来熟练掌握git常用指令。
本章节将介绍git的一些高级操作,这些操作主要用来如何在提交树上进行移动,方便更灵活的更改分支以及提交节点。
本文章根据"Learn Git Branching"网站进行记录知识点。该网站将git流程可视化,可以很好的学习git相关知识。如果有兴趣,可以访问该网站: https://learngitbranching.js.org/?locale=zh_CN
本章将介绍vscode的C/C++插件的具体使用方法。
本文章主要记录使用博客期间遇到的有关hugo bootstrap skeleton主题的一些问题以及解决方法。
本章节将介绍vim的常用语法。
前面几章主要是对参考书目的内容进行一个概括。本章将根据参考书目的内容对所学到的所有函数进行一个整理和总结,以便复习和参考。英伟达的官方网站包含了所有的CUDA函数,可参考https://developer.download.nvidia.cn/compute/DevZone/docs/html/C/doc/html/index.html
这部分是基于原子操作章节进行的高级操作介绍,即实现锁定数据结构。
原子操作只能确保每个线程在完成读取-修改-写入的序列之前,将不会有其他的线程读取或者写入目标内存。然而,原子操作并不能确保这些线程将按照何种顺序执行。例如当有三个线程都执行加法运算时,加法运行的执行顺序可以为(A + B) + C,也可以为A + (B + C)。这对于整数来说是可以接受的,因为中间结果可能被截断,因此(A + B) + C通常并不等于A + (B + c)。因此,浮点数值上的原子数学运算是否有用就值得怀疑🤔。因此在早期的硬件中,浮点数学运算并不是优先支持的功能。
然而,如果可以容忍在计算结果中存在某种程度的不确定性,那么仍然可以完全在GPU上实现归约运算。我们首先需要通过某种方式来绕开原子浮点数学运算。在这个解决方案中仍将使用原子操作,但不是用于算数本身。
本章将介绍如何分配和使用零拷贝内存(Zero-Copy Memory),如何在同一个应用程序中使用多个GPU,以及如何分配和使用可移动的固定内存(Portable Pinned Memory)。 零拷贝主机内存 上一章介绍了固定内存(页锁定内存),这种新型的主机内存能够确保不会交换出物理内存。我们通过cudaHostAlloc()来分配这种内存,并且传递参数cudaHostAllocDefault来获得默认的固定内存。本章会介绍在分配固定内存时可以使用其他参数值。除了cudaHostAllocDefault外,还可以传递的标志之一是cudaHostAllocMapped。通过cudaHostAllocMapped分配的主机内存也是固...