当前位置:  开发笔记 > 编程语言 > 正文

在亚马逊上使用R的GPU包

如何解决《在亚马逊上使用R的GPU包》经验,为你挑选了0个好方法。

我花了差不多一整天试图让这个运行起来,最后决定来到SO,因为这里有人会尝试这个=)

我想得到一台运行rpud(或其他R GPU包)的Amazon-EC2 GPU机器,cg1.4xlarge或g2.2xlarge,因为它们是亚马逊(AWS)唯一的两台GPU机器.

这篇文章如何使用Amazon EC2 Panel运行GPU实例?帮助我意识到我不能只是将我的rstudio-server机器更改为gpu机器,因为我使用了错误的AMI.

从Amazon CentOS 6(x86_64)开始使用此AMI - 使用更新
因此我决定自己构建并开始遵循http://www.r-tutor.com/gpu-computing/rpud-installation中的说明.和http://www.louisaslett.com/Talks/GPU_Programming_Basics_Getting_Started/Handout.pdf一样(路易斯·阿斯莱特也是一个在ec2上使用rstudio-server的惊人演示的人(http://www.louisaslett.com)/RStudio_AMI /).

这两个最终都会引导您到这里:http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#package-manager-installation,这样您就可以获得CUDA工具包(这似乎是GPU计算的必需品).一些AWS机器已经安装了Cuda工具包,但是我想我会在第一次尝试时遵循指示(即使它们已经安装,有时版本的东西也和我的一些教程不一样)找到).所以我按照这些指示去了T,最后我得到了一些错误,比如nvidia-settings-319.37-30.fc18.x86_64 (cuda) Requires: libgdk-x11-2.0.so.0()(64bit)当我尝试运行示例时$ cuda-install-samples-5.5.sh

.所以我下载了所有必需的软件包.我再次尝试并最终得到rpud错误(将在稍后详述).

这台机器是Ubuntu-12.04
所以当然我认为,有人必须已经为此建立了一个AMI并找到一个用python做过的人.我可能最终会因为速度更高的奖金而最终使用python,但此时我想让它与R一起工作.这里:http://vasir.net/blog/opencl/installing-cuda-opencl-pyopencl-on -aws-ec2是AMI /指令的链接,如果你愿意,可以从头开始构建它.当然,那么你必须安装R,默认为R2.14,所以按照这篇文章如何安装R版本3以使R.3.1.0运行,因为rpud需要R> = R.2.8.

按照上面列出的r-tutor网站的指示(通过简单地使用install.packages('rpud')$ R CMD INSTALL rpud_.tar.gz 使用指示http://cran.r-project.org/web/packages/rpud/INSTALL,我收到以下消息:

* installing *source* package ‘rpud’ ...
checking "environment variable CUDA_HOME"... "CUDA_HOME not set; using default /usr/local/cuda"
checking for /usr/local/cuda/bin/nvcc... yes
"nvcc found"
checking "whether this is the 64 bit linux version of CUDA"... checking for /usr/local/cuda/lib64/libcublas.so... yes
"yes -- using /usr/local/cuda/lib64 for CUDA libs"
"using -I/usr/share/R/include for R header files"
"using -Wl,--export-dynamic -fopenmp  -L/usr/lib/R/lib -lR -lpcre -llzma -lbz2 -lrt -ldl -lm for R shared libraries"
configure: creating ./config.status
config.status: creating src/Makefile
** libs
** arch -
/usr/local/cuda/bin/nvcc -c -I/usr/local/cuda/include -Xcompiler "-I/usr/share/R/include -fpic" rpud.cu -o rpud.o
/usr/local/cuda/bin/nvcc -c -I/usr/local/cuda/include -Xcompiler "-I/usr/share/R/include -fpic" rpudist.cu -o rpudist.o
rpudist.cu(159): warning: use of "=" where "==" may have been intended

rpudist.cu(159): warning: use of "=" where "==" may have been intended

ptxas /tmp/tmpxft_000006af_00000000-5_rpudist.ptx, line 904; warning : Double is not supported. Demoting to float
/usr/local/cuda/bin/nvcc -shared -Xlinker "-Wl,--export-dynamic -fopenmp  -L/usr/lib/R/lib -lR -lpcre -llzma -lbz2 -lrt -ldl -lm -Wl,-rpath,/usr/local/cuda/lib64" -L/usr/local/cuda/lib64 -lcublas -lcuda rpud.o rpudist.o -o rpud.so
/usr/bin/ld: unrecognized option '-Wl'
/usr/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
make: *** [rpud.so] Error 1
ERROR: compilation failed for package ‘rpud’
* removing ‘/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.1’/rpud’

所以我试着找出-Wl正在做什么导致我到另一个死胡同http://www.talkstats.com/showthread.php/43438-installing-rpud-got-unrecognized-option-Wl.我的一位朋友向我指出了http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html以获取更多信息-Wl,但更改rpud的源代码或查找/安装正确的链接器可能就在外面我的能力.

关于评论:

ubuntu@ip-xx-xx-xx:~$ dpkg -l | grep nvidia
ii  nvidia-current                   319.37-0ubuntu1                   NVIDIA binary Xorg driver, kernel module and VDPAU library
ii  nvidia-current-dev               319.37-0ubuntu1                   NVIDIA binary Xorg driver development files
ii  nvidia-modprobe                  319.37-0ubuntu1                   Load the NVIDIA kernel driver and create device files
ii  nvidia-settings                  319.37-0ubuntu1                   Tool for configuring the NVIDIA graphics driver

我希望有人在ubuntu上使用rpud,并可以提供有关如何使rpud工作的任何进一步指导.在此先感谢您的时间.如果您需要更多信息,请随时发表评论.

编辑2014年4月8日

在python演练http://enja.org/category/tutorial/advcl/之后,我能够在GPU上运行一个简单的程序,python/part1示例运行完美.所以我知道NVIDIA驱动程序工作正常,至少对于python而言.但是,我还没有找到一个R walk-through,甚至可以正确加载包.

Python探索的进一步发现:我当前的机器上有2台设备都可以工作.

Choose device(s):
[0] 
[1] 

*可以通过运行python GPU教程中的任何python脚本来看到这些

编辑2014年4月9日

知道Python正在与OpenCL接口让我觉得,R不能做同样的事吗?显然,其他人已经想到了同样的事情,并构建了包'OpenCL'

所以我跑了install.packages('OpenCL'),IT工作.然后从http://cran.r-project.org/web/packages/OpenCL/OpenCL.pdf运行一些示例代码.

在这一点上,我唯一的问题是,是否有其他人成功地将GPU与R接口,如果是这样,他们是如何做到的?

我将逐步发布作为答案,但我希望看到其他方式.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有