Git 学习 (六)

这部分将记录一些我遇到的实际的一些git流程,通过实际的问题可以快速了解哪些git命令是常用且重要的。由于每个人遇到的具体项目都不太一样,所以这里的一些情况只作为参考。

“《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective, CS: APP)这本书的主要读者是哪些想要通过学习计算机系统的内在运作而提高自身技能的程序员”。计算机知识过于庞大,在工作中我总是会遇到一些底层相关的知识点,而掌握这些知识点需要深入学习透计算机系统的知识。所以,我会根据这本书的内容,记录有用的计算机系统知识点,以便于及时复习巩固。后面的博客将根据书的章节来划分,毕竟我自己也不好按照自己的方式进行布局,那样反而会显得又些混乱:)

Git 学习 (三)

本章将着重介绍如何更清晰的整理提交记录,git tag和git describe的用法,以及一些复杂的样例来熟练掌握git常用指令。

Git 学习 (二)

本章节将介绍git的一些高级操作,这些操作主要用来如何在提交树上进行移动,方便更灵活的更改分支以及提交节点。

前面几章主要是对参考书目的内容进行一个概括。本章将根据参考书目的内容对所学到的所有函数进行一个整理和总结,以便复习和参考。英伟达的官方网站包含了所有的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上实现归约运算。我们首先需要通过某种方式来绕开原子浮点数学运算。在这个解决方案中仍将使用原子操作,但不是用于算数本身。