基于R的GPU封装我花了差不多一整天的时间试图让这个运行,最后决定来,是因为那里将是这里的人谁也试过这种=)亚马逊
我想获得使用rpud(或其他R GPU软件包)运行的Amazon-EC2 GPU计算机,无论是cg1.4xlarge还是g2.2xlarge,因为这些是亚马逊(AWS)仅有的两台GPU计算机。
这篇文章How to run a GPU instance using Amazon EC2 Panel?帮助我意识到,我不能只是因为我使用的是不正确的AMI而将我的rstudio-server机器更改为gpu机器。
开始了与这个AMI从亚马逊的CentOS 6(x86_64的) - 与更新
所以我决定,我不得不建立自己的,并开始在这里http://www.r-tutor.com/gpu-computing/rpud-installation以下的方向。除了http://www.louisaslett.com/Talks/GPU_Programming_Basics_Getting_Started/Handout.pdf(路易阿斯莱特是谁具有使用上的EC2(http://www.louisaslett.com/RStudio_AMI/)rstudio服务器的一个惊人的演示一样的家伙
这两项的最终导致你在这里:http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#package-manager-installation,这样你就可以得到CUDA工具包(这似乎是GPU计算的必需品)一些AWS机器已经安装了Cuda工具包,但是我想我会在第一次尝试时遵循指示(即使它们已安装,有时版本化的东西也没有和我发现的一些教程是一样的),所以我按照T的指示行事,当我试着用$ cuda-install-samples-5.5.sh <dir>
运行示例时,最终得到了一些错误,如nvidia-settings-319.37-30.fc18.x86_64 (cuda) Requires: libgdk-x11-2.0.so.0()(64bit)
,所以我下载了所有这些需要的软件包,我再试一次,最后出现rpud错误(将在后面详细介绍)
本机是Ubuntu的12.04
所以我当然认为,必须有人已经建立了这样的一个AMI并找到谁与蟒蛇做的。我可能因为更多的速度奖金而最终使用python,但是现在我想让它与R一起工作。这里:http://vasir.net/blog/opencl/installing-cuda-opencl-pyopencl-on-aws-ec2是AMI /关于如何从头开始构建它的说明的链接。当然,那么你必须安装R,默认为R2.14,所以在这个伟大的帖子How to install R version 3之后,得到R.3.1.0,因为rpud需要R> = R.2.8。
在从上面列出的R-导师站点上的(无论是从简单地使用install.packages('rpud')
或$ R CMD INSTALL rpud_<version>.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的源代码或查找/安装正确的链接器可能超出我的能力。
关于评论:
[email protected]:~$ 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日
继蟒演练,http://enja.org/category/tutorial/advcl/,我能够获得在GPU上运行一个简单的程序,蟒蛇/ part1的例子完美运行。所以我知道NVIDIA驱动程序工作正常,至少对于Python而言。然而,我还没有找到一个R走查,甚至会正确加载软件包。
来自Python探索的进一步发现:我有两台设备在我的当前机器上工作。
Choose device(s):
[0] <pyopencl.Device 'Tesla M2050' on 'NVIDIA CUDA' at 0x2806460>
[1] <pyopencl.Device 'Tesla M2050' on 'NVIDIA CUDA' at 0x28064b0>
*那些可以通过从Python GPU教程
编辑2014年4月9日
知道了Python与OpenCL的接口运行任何Python脚本中可以看到让我觉得,R不能做同样的事情吗?显然有人想到了同样的东西,并建立了'OpenCL'包'
所以我跑install.packages('OpenCL')
和IT工作。然后运行http://cran.r-project.org/web/packages/OpenCL/OpenCL.pdf中的一些示例代码。
在这一点上,我留下的唯一问题是,是否有其他人成功地将GPU与R接口连接,如果是,他们是如何做到的?
我会一步一步回复,但很乐意看到其他方式。
您是否使用了HVM AMI与NVIDIA驱动HTH?有可能没有Ubuntu AMI的,但有证据表明AMI的其他风格的Linux应该工作 – datasage
是否最近的编辑回答你的问题?我还运行'nvidia-smi -a'来检查驱动程序是否开心,如果您想查看的话,它会生成一个很好的日志文件。 –