Go on GPUChangkun Ou. 2023. Go on GPU. GopherChina 2023. Session "Foundational Toolchains" Go on GPU Changkun Ou changkun.de/s/gogpu GopherChina 2023 Session “Foundational Toolchains” 2023 June 10 1 Changkun Ou. 2023. Go on GPU. GopherChina 2023. Session "Foundational Toolchains" Agenda ● Basic knowledge for interacting with GPUs ● Accelerate Go programs using GPUs ● Challenges in Go when using outlooks 2 Changkun Ou. 2023. Go on GPU. GopherChina 2023. Session "Foundational Toolchains" Agenda ● Basic knowledge for interacting with GPUs ○ Motivation ○ GPU Driver and Standards ○ Render and0 码力 | 57 页 | 4.62 MB | 1 年前3
 3.云原生边云协同AI框架实践维度信息,以提升整体识别准确度。 ② 运行在不同边缘节点的AI算法可以灵活资源 卸载,包括卸载到其他边缘或云端,以提升 整体推理效率。 多边协同推理: 联合多边缘信息提升精度,卸载任务到多边缘提升资源利用率 Sedna-GM: 一个K8S Operator 第三部分 Operator:特定应用扩展K8S API的控制器 •API: The data that describes the operand’s 部署Sedna终身学习,实现机器人室外递送过程中的边侧智能环境感知任务; • 基于视觉的语义分割,帮助机器人识别出低矮障碍,比如马路牙子和斜坡, 帮助机器人做出正确的避让决策。 技术挑战 • 机器人本体资源不足。比如无法部署GPU,导致推理速度慢,机器人来不及做避 让决策; • 数据异构问题导致AI模型失效。比如,AI模型无法很好地识别到新环境的图片; • 边侧数据不足,AI模型训练难以收敛或启动。 云机器人园区室外递送终身学习案例0 码力 | 37 页 | 2.36 MB | 1 年前3
 Hello 算法 1.0.0b1 Golang版典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 CPU, GPU 执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 了!因为这正是本书 Figure 7‑12. 完全二叉树的数组表示 数组表示有两个优点:一是不需要存储指针,节省空间;二是可以随机访问结点。然而,当二叉树中的“空 位”很多时,数组中只包含很少结点的数据,空间利用率很低。 7. 树 hello‑algo.com 98 7.2. 二叉树遍历 从物理结构角度看,树是一种基于链表的数据结构,因此遍历方式也是通过指针(即引用)逐个遍历结点。同 时,树还是一种非0 码力 | 190 页 | 14.71 MB | 1 年前3
 Hello 算法 1.0.0b2 Golang版典的一系列指令看作是「二分查找」算法。 小到烹饪一道菜、大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现,使我们可以通过编程将 数据结构存储在内存中,也可以编写代码来调用 CPU, GPU 执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 了!因为这正是本书 Figure 7‑12. 完全二叉树的数组表示 数组表示有两个优点:一是不需要存储指针,节省空间;二是可以随机访问结点。然而,当二叉树中的“空 位”很多时,数组中只包含很少结点的数据,空间利用率很低。 7. 树 hello‑algo.com 101 7.2. 二叉树遍历 从物理结构角度看,树是一种基于链表的数据结构,因此遍历方式也是通过指针(即引用)逐个遍历结点。同 时,树还是一种0 码力 | 202 页 | 15.73 MB | 1 年前3
 Hello 算法 1.1.0 Go版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:初始化列表 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,二叉搜索树(binary search tree)满足以下条件。 1. 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。0 码力 | 383 页 | 18.48 MB | 1 年前3
 Hello 算法 1.0.0 Golang版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将 引导你迈入数据结构与算法的知识殿堂。 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:初始化列表 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,「二叉搜索树 binary search tree」满足以下条件。 1. 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。0 码力 | 382 页 | 17.60 MB | 1 年前3
 Hello 算法 1.0.0b5 Golang版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转 移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,这本书 将引导你迈入数据结构与算法的知识殿堂。 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个 元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,std::list 对缓存的利用率较低。一般情况下, std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue ,而非链表。 84 第 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,「二叉搜索树 binary search tree」满足以下条件。 第 7 章 树 hello‑algo.com 145 1. 对于根节点,左子树中所有节点的值0 码力 | 379 页 | 30.70 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Go 版案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 空间开销:由于每个元素需要两个额外的指针(一个用于前一个元素,一个用于后一个元素),所以 std::list 通常比 std::vector 更占用空间。 ‧ 缓存不友好:由于数据不是连续存放的,因此 std::list 对缓存的利用率较低。一般情况下,std::vector 的性能会更好。 另一方面,必要使用链表的情况主要是二叉树和图。栈和队列往往会使用编程语言提供的 stack 和 queue , 而非链表。 Q:操作 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4 二叉搜索树 如图 7‑16 所示,二叉搜索树(binary search tree)满足以下条件。 1. 对于根节点,左子树中所有节点的值 < 根节点的值 < 右子树中所有节点的值。0 码力 | 384 页 | 18.49 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Go 版案。從資料結構與演算法的角度看,這種方法本質上是“貪婪”演算法。 小到烹飪一道菜,大到星際航行,幾乎所有問題的解決都離不開演算法。計算機的出現使得我們能夠透過程 式設計將資料結構儲存在記憶體中,同時編寫程式碼呼叫 CPU 和 GPU 執行演算法。這樣一來,我們就能把 生活中的問題轉移到計算機上,以更高效的方式解決各種複雜問題。 Tip 如果你對資料結構、演算法、陣列和二分搜尋等概念仍感到一知半解,請繼續往下閱讀,本書將引導 空間開銷:由於每個元素需要兩個額外的指標(一個用於前一個元素,一個用於後一個元素),所以 std::list 通常比 std::vector 更佔用空間。 ‧ 快取不友好:由於資料不是連續存放的,因此 std::list 對快取的利用率較低。一般情況下,std::vector 的效能會更好。 另一方面,必要使用鏈結串列的情況主要是二元樹和圖。堆疊和佇列往往會使用程式語言提供的 stack 和 queue ,而非鏈結串列。 Q:操作 ‧ 陣列儲存需要連續記憶體空間,因此不適合儲存資料量過大的樹。 ‧ 增刪節點需要透過陣列插入與刪除操作實現,效率較低。 ‧ 當二元樹中存在大量 None 時,陣列中包含的節點資料比重較低,空間利用率較低。 7.4 二元搜尋樹 如圖 7‑16 所示,二元搜尋樹(binary search tree)滿足以下條件。 1. 對於根節點,左子樹中所有節點的值 < 根節點的值 < 右子樹中所有節點的值。0 码力 | 385 页 | 18.80 MB | 10 月前3
 Hello 算法 1.0.0b4 Golang版9 Figure 1‑3. 货币找零过程 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使我们能够通过编程将 数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题转 移到计算机上,以更高效的方式解决各种复杂问题。 � 阅读至此,如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,那么太好了! 因为这 ‧ 数组存储需要连续内存空间,因此不适合存储数据量过大的树。 ‧ 增删节点需要通过数组插入与删除操作实现,效率较低。 ‧ 当二叉树中存在大量 None 时,数组中包含的节点数据比重较低,空间利用率较低。 7.4. 二叉搜索树 「二叉搜索树 Binary Search Tree」满足以下条件: 7. 树 hello‑algo.com 128 1. 对于根节点,左子树中所有节点的值 < 根节点的值0 码力 | 347 页 | 27.40 MB | 1 年前3
共 18 条
- 1
 - 2
 













