用Anaconda编写一个测试程序,提示用户用计算机高级语言编写的程序输入三个整数,然后调用函数按升序显示

摘要:随着人工智能时代的到来,计算能力变得越来越重要。GPU计算已经成为了必然的趋势,对于机器学习爱好者来说要想训练一个高质量的神经网络,使用GPU无疑是最佳选择。

GPU计算已成为数据科学领域的重要组成部分。计算需求的不断增长,使得GPU计算逐渐流行起来。此外,现在每个主要云计算提供商都提供了GPU服务,比如阿里云,因此现在访问高性能硬件是非常简单的一件事。但是,自行构建GPU软件是相当吓人。幸运的是,Anaconda Distribution可以很容易地启动GPU计算,并且可以从我们的软件包库中直接安装几个支持GPU的软件包。在这篇博客文章中,我们将向你介绍如何在Anaconda发行版中开始使用GPU。

1.什么时候选择GPU?

GPU并不是通用计算设备。它们是专门的协处理器,对于一些任务来说是非常好的(一般可以提升10倍的性能)。GPU最成功的应用是在设备的大并行浮点吞吐量和高内存带宽的问题领域中。一些例子包括:

2.信号和图像处理(FFT)。

3.神经网络和深度学习。

4.其他机器学习算法,包括广义线性模型,梯度增强等。

5.蒙特卡罗模拟和粒子运输。

所有这些成功用例的共同点是什么?广义而言,准备用于GPU加速的应用程序具有以下特征:

1.1:高“算术强度”

如果数学运算与内存运算的比例较高,要求运算算法速度快,GPU加速是一个很好的选择。这些算法利用了GPU的高数学吞吐量,以及在同时对其他数据进行数学运算的同时,在后台对内存访问进行排队的能力。GPU可以在请求和接收存储在GPU内存中的一个编号的时间内轻松地执行许多数学指令。

什么算得上高算术强度?GPU的一个法则是,对于你输入的每一个数字,你至少需要十个基本的数学运算(加法,减法,乘法,除法等)或至少一个特殊的数学函数调用,如exp()或者cos()。

GPU是处理阵列的最佳选择,大阵列的元素可以并行计算。如果计算只能分成少量的独立任务,则多核CPU可能更适合。请注意,找到并行的方法是要用不同的算法替换当前的串行算法,以高度并行的方式解决相同的问题。一个快速的网络搜索是否有价值,看它是否有“明显不能并行化”的东西。

1.3:工作数据集可以放入GPU内存

16 GB(甚至24 GB)的GPU现在已经可以买到,但也比在高端服务器上安装的系统内存的数量要少一个数量级。一些算法可以将数据在同一台计算机上的多个GPU之间进行分割,而且有时可以在不同计算机的GPU之间分割数据。也可以将系统RAM中的数据传输到GPU中,但连接GPU和CPU的PCI-E总线的带宽或将成为一个限制因素,除非计算和内存传输仔细重叠。

很多数据科学任务主要受I / O速度限制。例如,在一个磁盘上过滤500 GB记录以找到与简单搜索模式匹配的子集的应用程序将花费大部分时间等待数据从磁盘加载。如果这个数据过滤之后将要进行6个小时的深度学习的训练,那么使用GPU将是非常有益的(仅对于模型训练阶段)。在开始性能优化工作之前,分析你的Python应用程序以测量实际耗用的时间是一个好主意。

在开始使用GPU之前,你需要做一些事情:

2.1:使用NVIDIA?(英伟达?)GPU(图形处理器)的系统:更便宜的GeForce显卡非常适合实验,更昂贵的Tesla显卡通常具有更好的双精度性能和更多内存。移动NVIDIA GPU也可以工作,但性能非常有限。

GPU,而在Windows上,图形驱动程序系统的局限性损害了运行CUDA的GeForce卡的性能。Linux上最新的(不是Nouveau)对于支持GPU的Anaconda软件包来说已经足够了。除非你想从头编译自己的GPU软件,否则不需要安装完整的CUDA工具包。

2.3:Anaconda:安装本文描述的软件包最简单的方法是使用的conda命令行工具。如果你是Anaconda Distribution的新手,最近发布的版本5.0是一个很好的开始,但旧版本的Anaconda Distribution也可以安装下面描述的软件包。

训练神经网络(通常称为“深度学习”,指的是常用的大量网络层)已经成为GPU计算的一个非常成功的应用。神经网络已经证明了它们在,,和许多其他应用中的实用性。但是,他们需要大量的数据集和计算能力来训练,并且能够轻松地进行不同模型的实验。一旦训练完毕,模型可以在CPU和移动设备上运行。

对于深度学习来说,我非常喜欢。Keras是一个Python库,用于构建,训练和评估支持多种高性能后端库(包括,和神经网络模型。Keras也可以不用GPU,但是对于许多项目来说,如果你有一个GPU的话,训练速度可以提高10倍。

我也喜欢在Jupyter上记录我的Keras实验,所以你可能也想运行:

一些很好的起点是练习Github上的和卷积神经网络实例。

值得一提的是像TensorFlow和这样的库可以直接用于各种计算和机器学习任务,而不仅仅是深度学习。因为它们使CPU和GPU之间的计算变得非常容易,所以它们可以成为数据科学工具箱中最强大的工具。

NVIDIA还通过GPU加速实现了标准的数学算法。项目提供了许多这些算法的Python包,包括:

这些Python包采用标准的NumPy数组,并为你处理来自GPU的所有副本。请注意,由于复制开销,你可能会发现这些函数没有比NumPy更快的小阵列。性能也很大程度上取决于你使用的GPU类型和数组数据类型。使用GeForce显卡时,float32类型比float64(NumPy默认)要快得多。

对于想要深入研究GPU编程细节的人来说,是一个不错的选择。Numba是开放源代码Python编译器,其中包括适用于CPU和GPU目标的即时编译工具。它不仅编译用于在CPU上执行的Python函数,还包括一个完全的Python本机API,用于通过CUDA驱动程序对NVIDIA GPU进行编程。在GPU上运行的代码也是用Python编写的,并且内置了支持将NumPy数组发送到GPU并使用熟悉的Python语法访问它们的支持。

Numba的GPU支持是可选的,所以要启用它,你需要安装Numba和CUDA工具包conda软件包:

CUDA编程模型基于两级数据并行性概念。在GPU上启动“内核函数”,同时执行相同的函数的“网格”(通常是数千个)线程。网格由许多相同的线程块组成,块内的线程能够比不同块中的线程更容易地同步和共享数据。这种编程风格与传统的CPU上的多线程编程有很大不同,它针对“数据并行”算法进行了优化,每个线程同时运行相同的指令,但具有不同的输入数据元素。的前几章对如何使用CUDA给予了很好的讨论。一旦熟悉了CUDA编程模型,下一步应该是。笔记本涵盖了使用Python编程GPU的基本语法,还包括更多高级主题,如ufunc创建,内存管理和调试技术。

Dataframe(简称“GDF”)概念是Anaconda与其他成员共同开发的。GDF是格式的数据帧,存储在GPU内存中。由于在CUDA驱动程序中支持在进程之间传输GPU内存部分,所以通过对GPU加速数据库(如MapD)的查询创建的GDF可以直接发送到Python解释器,在该解释器中可以执行该数据帧的操作,然后可以将数据移动到像H2O这样的机器学习库中,所有这些都不需要从GPU上取下数据。

对Python Dataframe的Python支持由项目提供,我们从2017年3月开始一直致力于项目。它提供了用于在GPU数据帧上运行的Pandas API的子集,使用GPU的并行计算能力(以及Numba JIT )用于排序,柱状数学,缩减,过滤器,连接和按操作分组。

我只介绍了关于GPU的冰山一角,但是希望上面提到的能激励你深入了解。下面

本文由北邮老师推荐,组织翻译。

文章为简译,更为详细的内容,请查看

  不多说,直接上干货!

  人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
  目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

      对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)() 

Q 4 :Anaconda无法创建目录,如何解决?

A:建议使用至少win7或以上的操作系统,可减少很多问题,xp已停止更新多年。

Q 5 :有人记得上课时老师提及过的快捷键切换么,有心人汇总一下好么?

A:ESC模式下: B是往下增加一行,A是向上增加一行。ESC+M是调整为markdown格式,Y是从markdown格式切换为code模式。

Q 6 :windows下载非常慢,都一小时了,还没到一半。课程里老师对安装anaconda的讲解有点快,可以为windows的小白用户详细讲解安装过程中遇到的问题吗?

Q 7 :jupyter启动之后,没有教程中说的文件夹怎么办?

A:点击右上角new 自己新建一个吧。跟别人电脑上的文件夹和你自己的定义的文件夹会有不同是一个道理。

Q 8 :视频19:00的时候,输入“#第一课” 显示的是“第一课”,这里的是什么?视频24:15的时候 输入#BMI时 #的功能是备注,结果#会显示出来,而之前的不会,why?

A:Markdown语法 #第一课 #是一个标记 会去渲染第一课的文字呈现效果,自己是不会显示的在界面上的。在python开发中的# 表示是注释。会显示的。这两个#环境不同,表现不同。

Q 9 : 运行安装包后是上图这样的,请问我下一步应该怎样做呢?

我要回帖

更多关于 用户用计算机高级语言编写的程序 的文章

 

随机推荐