Julia中的GPU计算选项

Ink*_*Pen 3 gpgpu julia julia-gpu

我正在考虑购买GPU卡来试验朱莉娅的GPU计算.我现在看到它基本上有两种选择:NVIDIA或AMD芯片组.

我的问题是:是否有与Julia一起使用的推荐选项?由于我是GPU计算的新手,我更关注的是易用性而不是性能,所以我可以想象当前用作GPU接口的Julia软件包基本上决定了答案.

我使用基于Windows 7的系统.任何帮助表示赞赏.

Mic*_*gge 9

几点:

1)ArrayFire是一个非常易于使用的GPU平台,带有Julia接口(https://github.com/JuliaGPU/ArrayFire.jl).它适用于NVIDIA和AMD GPU.

2)如果你想要的东西超出了ArrayFire的范围,那么通常通过NVIDIA专有的CUDA C语言支持NVIDIA卡.您可以在此处查看Julia的所有GPU包列表.正如您将看到的,其中许多用于CUDA而不是OpenCL,后者是用于编写可在NVIDIA或AMD上运行的内核的C版本.但是,要知道如果你走这条路,你需要开始在C中编写自己的内核.

在我看来,CUDA C具有一些方便的自动化功能,可以自动处理核心之间以高效方式分配工作的某些方面.CUDA C似乎更普遍地用于科学计算.

但是,我认为在开放式CL中无法做太多事情,并且学习如何用它做事情可能并不困难得多.此外,OpenCL还具有适用于GPU以外的各种高性能平台的优势(例如,在Intel的Xeon Phi上编程).

3)您应该注意是否需要以单精度或双精度工作进行浮点运算.从任一制造商处选择GPU时,这都会产生很大的不同.例如,NVIDIA有一些专门设计用于进行双精度操作的GPU(主要是特斯拉系列,还有Titan Black).如果您选择除此之外的NVIDIA GPU,您将获得单倍性能的双倍精度性能的1/32.AMD芯片往往不那么专业,在单精度和双精度之间表现得更加相称.我认为有一些使用案例,其中NVIDIA卡将是更好的价值和其他AMD将更具成本效益.

4)GPU可能会变得相当昂贵(尽管在Ebay上通常有很好的使用选项,等等).他们的喜悦是他们可以在比CPU快几个数量级的时间内进行(某些)计算.但是,为了获得这个优势,你通常会花费数千美元(特别是如果你需要购买一个新的系统来支持强大的GPU,因为许多基本的消费级计算机只是不支持它们好).如果可能的话,首先要做一些试验工作以确切地知道你需要什么,这对你有利.例如,NVIDIA有一个测试程序,您可以在这里申请.我从来没有用过它,所以我不能多说这种方式.AMD可能有类似的东西.或者,如果您与拥有GPU的公司或研究机构有关联,或者如果您有一位朋友会让您使用他们的计算机并试用它们,那么在确定您需要的内容之前可能会非常有帮助.时间.

5)在查看不同的卡片时,您需要特别注意它们提供的每一美元的触发次数(以您所需的精度级别),还要注意您需要多少GPU内存,以及可能出现的问题.它们如何有效地支持多个GPU之间以及GPU和CPU之间的通信.据我所知,这些GPU-GPU和CPU-CPU计算的黄金标准是新的NVIDIA P100卡.这是超级的,超级昂贵的,现在只能作为$ 10万+系统的一部分(其中有8个)从NVIDIA购买.到今年年底,P100应该可以从其他制造商处获得.就CPU和GPU之间的传输速度而言,它们可以做出令人难以置信的事情,但是需要付出沉重的代价,如果你所寻找的只是每美元最多的失败,他们就无法证明价格是合理的.