本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:【j2开奖】深度 | 机器学习中的并行计算:GPU、CUDA和实际应用(2)

时间:2016-11-11 19:17来源:118图库 作者:本港台直播 点击:
CUDA 在技术上是一种异构计算环境,也就是说它利用了同时在 CPU 和 GPU 上的协调计算。CUDA 架构由主机(host)和设备(device)组成;其中主机是指传统的

CUDA 在技术上是一种异构计算环境,也就是说它利用了同时在 CPU 和 GPU 上的协调计算。CUDA 架构由主机(host)和设备(device)组成;其中主机是指传统的 CPU,而设备则是指带有大量算术单元的处理器,通常是 GPU。CUDA 提供了传统编程语言的扩展(CUDA 捆绑的原生语言是 C,但也移植或加入了许多其它语言)、可以创建核(kernel,核是指并行执行的函数)。

当一个核被加载时,它会被大量 CUDA 设备的线程同时执行,其中的某个集合可以被称为一个线程块(block of threads),块可以集聚为网格(grid)。线程在块中被排布成三维布局的形式,然后块又在网格中被排布成三维的形式。图 4 给出了这些关系和布局。一个核(kernel)所部属的线程、块和网格的总数量是由该核被加载的主机上所执行的程序员的代所策略性地规定的,这要基于给定的情况的要求。

重要的是,主机和设备都有自己的内存空间,这些空间是彼此独立的。一个 CUDA 设备只有一个全局内存空间。加载核和产生大量用于计算的设备线程的首要条件是将所需的数据从主机复制到设备内存。一旦计算完成,还必须按相反的方向将结果复制回去。这都是通过 CUDA 扩展来实现的,并且从程序员的视角来看,这都发生在一个非常抽象的层面上。

当管理设备的内存时,给核分配正确的块是很关键的;太少会导致计算能力缺乏,而太多的话则会浪费线程——多余的线程可以被分配给其它同时执行的核。举个例子,在 k-fold 交叉验证建模过程中,直播,这可能会导致分配给特定 fold 的的线程太少,从而导致比预期耗时更长的验证过程。

相对地,这也可能导致在 k-fold 交叉验证建模过程中分配了过多的线程,从而让很多线程无法得到使用,进而延长了所有 fold 完成它们的模型验证所需的时间。

幸运的是,设备内存(包括被分配给块和最终的核的线程的数量)的管理是可以被用户定义的(但存在上限,比如每个块最多 1024 个线程)。CUDA 也提供了将这种管理半自动化的聪明方法,让内存管理函数可以将数学表达式用作参数,这样就可以,比如说,在执行的核就能计算出一个数组或矩阵这样的数据结构的大小,然后分配适合其计算的内存大小和维度。

报码:【j2开奖】深度 | 机器学习中的并行计算:GPU、CUDA和实际应用

图 4: CUDA 网格组织

我们提倡并行化的线性回归的一个方面是矩阵乘法——考虑一下矩阵乘法及其在 CUDA 架构上的实现。不考虑矩阵的大小,在高层面上我们假设在设备全局内存中有两个矩阵 M 和 N 相乘,另外还有用于结果矩阵 P 的空间。然后我们将矩阵 M 和 N 复制到设备。

为了简单,我们假设所有矩阵都可以放进一个块中,我们每个块线程都能计算 P 的一个元素。要完成这个计算,每个线程都载入 M 的一行和 N 的一列,计算出点积并将其存储为 P 的对元素。因为每一个点积都是并行计算出来的,那么其执行矩阵乘法的总时间就是其执行单个点积计算所用的时间。计算完成后,矩阵 P 被从设备内存复制回主机内存,其在这里可以继续被串行代使用。通常情况下,这样的一次核运算之后,设备内存会解除分配(deallocation)

这是一个高层面的概述。在实际情况下还需要执行一些额外的任务,比如确定块的大小。这也是一个简单的特定案例;但是尽管这种内存管理和设备计算技术必定根据算法的不同而会有所不同,但也可在多种不同的任务之上概括成:确定可并行化的计算、分配设备内存、复制数据到设备、执行并行化的计算、复制结果回主机、继续执行串行代码。注意这里的内存分配和数据复制开销可能会很容易变成瓶颈——这些过程可能会妨碍某些计算时间上的节省。

机器学习中的算法应用

给定适当的数据、算法实现的知识,结合自己的意图,你就能在机器学习中的并行处理上进行无限的尝试。当然,就像前面提到的那样,确定代码的并行部分是最难的任务,在给定的算法中就没这种问题。

一个比较好的起始点是矩阵乘法,就像上面一样,它是实现线性回归算法的很好的方法。在 GPU 上实现线性回归可参加论文:Performance improvement of data mining in Weka through GPU acceleration。该论文注重对速度的增加,而且提出了一些对概念化并行算法的其他洞见。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容