我正在尝试在 Ubuntu 10.04 上编译MAGMA库,但我被卡住了。
从自述文件:
要安装 MAGMA,请修改 make.inc 文件以指示 CUDA、CPU BLAS 和 LAPACK 在您的系统上的安装位置。make.inc.mkl
、make.inc.acml、make.inc.goto 和
make.inc.atlas 中给出了示例,显示了如何相应地链接到 MKL、ACML、
GOTO BLAS 或 ATLAS BLAS。正确修改 make.inc
文件后,键入“make”,将创建 1)在目录“lib”中的 libmagma.a 和 libmagmablas.a 库 2)在目录“testing”中测试驱动程序。
因此,我安装了所需的软件包:
apt-get install libatlas-base-dev liblapack-dev libf2c2-dev gfortran
复制make.inc.atlas
到make.inc
修改CUDA路径,nvcc
路径和liblapack.a
路径,我去掉两个不必要的链接目录。
如需完整参考,以下是原文make.inc.atlas
:
#//////////////////////////////////////////////////////////////////////////////
# -- MAGMA (version 1.3.0) --
# Univ. of Tennessee, Knoxville
# Univ. of California, Berkeley
# Univ. of Colorado, Denver
# November 2012
#//////////////////////////////////////////////////////////////////////////////
#
# GPU_TARGET specifies for which GPU you want to compile MAGMA:
# "Tesla" (NVIDIA compute capability 1.x cards)
# "Fermi" (NVIDIA compute capability 2.x cards)
# See http://developer.nvidia.com/cuda-gpus
GPU_TARGET = Fermi
CC = gcc
NVCC = nvcc
FORT = gfortran
ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib
OPTS = -O3 -DADD_
F77OPTS = -O3 -DADD_
FOPTS = -O3 -DADD_ -x f95-cpp-input
NVOPTS = -O3 -DADD_ --compiler-options -fno-strict-aliasing -DUNIX
LDOPTS = -fPIC -Xlinker -zmuldefs
LIB = /home/tomov/LIB/lapack-lite-3.1.1/lapack_LINUX64.a \
-lf77blas -latlas -lcblas -lf2c -lcublas -lm
CUDADIR = /usr/local/cuda-3.0
LIBDIR = -L/home/tomov/LIB/ATLAS/lib/Linux_UNKNOWNSSE2 \
-L/home/tomov/LIB/CLAPACK-3.1.1/F2CLIBS/ \
-L$(CUDADIR)/lib64
INC = -I$(CUDADIR)/include
在这里,我修改后的文件保存到make.inc
:
#//////////////////////////////////////////////////////////////////////////////
# -- MAGMA (version 1.3.0) --
# Univ. of Tennessee, Knoxville
# Univ. of California, Berkeley
# Univ. of Colorado, Denver
# November 2012
#//////////////////////////////////////////////////////////////////////////////
#
# GPU_TARGET specifies for which GPU you want to compile MAGMA:
# "Tesla" (NVIDIA compute capability 1.x cards)
# "Fermi" (NVIDIA compute capability 2.x cards)
# See http://developer.nvidia.com/cuda-gpus
GPU_TARGET = Fermi
CC = gcc
NVCC = /usr/local/cuda-5.0/bin/nvcc
FORT = gfortran
ARCH = ar
ARCHFLAGS = cr
RANLIB = ranlib
OPTS = -O3 -DADD_
F77OPTS = -O3 -DADD_
FOPTS = -O3 -DADD_ -x f95-cpp-input
NVOPTS = -O3 -DADD_ --compiler-options -fno-strict-aliasing -DUNIX
LDOPTS = -fPIC -Xlinker -zmuldefs
LIB = /usr/lib/liblapack.a \
-lf77blas -latlas -lcblas -lf2c -lcublas -lm
CUDADIR = /usr/local/cuda-5.0
LIBDIR = -L$(CUDADIR)/lib64
INC = -I$(CUDADIR)/include
所以,我跑了make
,我得到了这个错误。我应用了那里提出的解决方案,到目前为止编译仍在继续,直到这一点:
make[1]: Entering directory `/usr/src/magma-1.3.0/testing'
gcc -O3 -DADD_ -DHAVE_CUBLAS -DGPUSHMEM=200 -I/usr/local/cuda-5.0/include -I../include -I../control -c /usr/local/cuda-5.0/src/fortran.c -o fortran.o
In file included from /usr/local/cuda-5.0/src/fortran.c:67:
/usr/local/cuda-5.0/src/fortran_common.h:405:2: error: #error unsupported Fortran compiler
make[1]: *** [fortran.o] Error 1
make[1]: Leaving directory `/usr/src/magma-1.3.0/testing'
make: *** [test] Error 2
我能做些什么?