Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
magma R package changes
--------------------------------------------------------------------------------

2014-10-06 Serguei Sokol <sokol@insa-toulouse.fr>

* magma_1.5.0-1.tar.gz: Package upgrade release.

* src/*.c: Updated to magma 1.5.0 and cublas 6.0 (4.0+ is required) libraries

* fixed few bugs in magQRSolve()

2013-04-02 Brian Smith <brian-j-smith@uiowa.edu>

* magma_1.3.0-1.tar.gz: Package upgrade release.
Expand Down
31 changes: 18 additions & 13 deletions DESCRIPTION
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
Package: magma
Title: Matrix Algebra on GPU and Multicore Architectures
Version: 1.3.0-2
Date: 2013-04-03
Author: Brian J Smith <brian-j-smith@uiowa.edu>
Maintainer: Brian J Smith <brian-j-smith@uiowa.edu>
Version: 1.5.0-1
Date: 2014-10-07
Authors@R: c(person("Brian", "Smith", middle="J.", role = c("aut", "cre"),
email = "brian-j-smith@uiowa.edu"),
person("Serguei", "Sokol", role = c("com", "ctb"),
email="sokol@insa-toulouse.fr"))
Depends: R (>= 2.11.0), methods
SystemRequirements: MAGMA shared libraries (== release 1.3.0), LAPACK shared
library, NVIDIA CUDA Toolkit (>= release 4.0)
Description: Magma matrix classes and methods for parallel processing of matrix
algebra operations. Operations are performed with algorithms developed by
the MAGMA research project. MAGMA aims to achieve the fastest possible
linear algebra libraries on hybrid multicore CPU and GPU architectures by
exploiting their massive parallelism and minimizing communication latencies.
SystemRequirements: MAGMA software (== release 1.5.0), LAPACK
shared library, NVIDIA CUDA Toolkit (>= release 4.0)
Description: Magma matrix classes and methods for parallel processing
of matrix algebra operations. Operations are performed with
algorithms developed by the MAGMA research project. MAGMA aims
to achieve the fastest possible linear algebra libraries on
hybrid multicore CPU and GPU architectures by exploiting their
massive parallelism and minimizing communication latencies.
License: GPL-3
URL: http://icl.cs.utk.edu/magma
OS_type: unix


Packaged:
NeedsCompilation: yes
Repository: CRAN
Date/Publication:
58 changes: 27 additions & 31 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
magma R Package Version 1.3.0
Installation and Release Notes (4/2/2013)
magma R Package Version 1.5.0
Installation and Release Notes (2014-10-07)
Package Author: Brian J. Smith <brian-j-smith@uiowa.edu>
Package Maintainer: Brian J. Smith <brian-j-smith@uiowa.edu>
Package Contributor: Serguei Sokol <sokol@insa-toulouse.fr>
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Expand Down Expand Up @@ -60,14 +62,14 @@ I. (b) Hardware requirements
I. (c) Supported operating systems
--------------------------------------------------------------------------------

* Development and testing of the package is performed on 64-bit Ubuntu Linux
10.04 with. Other 64-bit Linux distributions should work as well.
Development is conducted with release 4.3 of the GCC tools; release 4.4 is
not supported and may cause errors.
* Development and testing of the package is performed on 64-bit Mageia Linux
4.0. Other 64-bit Linux distributions should work as well.
Development is conducted with release 4.8.2 of the GCC tools and 6.0
of the cuda tools.

* At this time, the package has not been tried on OS X, although input from any
attempts to do so are welcome. Windows is not supported currently due to a
lack of shared MAGMA libraries for that platform.
attempts to do so are welcome. Windows should be supported too as the
library magma is reported to copile on this platform.


--------------------------------------------------------------------------------
Expand Down Expand Up @@ -137,11 +139,7 @@ Next, the MAGMA software (http://icl.cs.utk.edu/magma) must be installed. To do
so,

* Extract the source code to a local directory, and follow the instructions
supplied with the code to make shared libraries 'libmagmablas.so' and
'libmagma.so'. Additional help on making the shared magma libraries can be
found at http://www.hiplar.org/hiplar-M-installation.html#MAGMA. After making
the shared libraries, refer to the previous section for instructions on
installing the libraries.
supplied with the code to make shared library 'libmagma.so'.


--------------------------------------------------------------------------------
Expand All @@ -165,7 +163,7 @@ where <option> are optional configuration arguments that can be supplied to
change default files and locations, and include

--with-r-home=DIR full path to R installation []
--with-magma-lib=DIR full path to MAGMA shared libraries []
--with-magma-home=DIR full path to MAGMA installation directory []
--with-lapack=LIBS LAPACK shared library [-llapack]
--with-cuda-home=DIR full path to CUDA installation [/usr/local/cuda]

Expand All @@ -182,34 +180,32 @@ the particular LAPACK implementation being used.

Example:

The following illustrate installation of magma package release 0.2.2-1 on a
system in which CUDA is installed in '/opt/cuda', MAGMA shared libraries in
'/opt/magma/lib', and with a ldconfig-registered LAPACK library named
'liblapack.so' (the default for --with-lapack):
The following illustrate installation of magma package release 1.5.0-1 on a
system in which CUDA is installed in '/usr/local/cuda' (default), MAGMA home directory in
'/usr/local/src/magma-1.5.0', and LAPACK library compiled by ATLAS project and named
/usr/local/atlas/lib64/libsatlas.so

Terminal command prompt
-----------------------
R CMD INSTALL \
--configure-args="
--with-cuda-home=/opt/cuda \
--with-magma-lib=/opt/magma/lib" \
magma_0.2.2-1.tar.gz
R CMD INSTALL --configure-args="\
--with-lapack=/usr/local/atlas/lib64/libsatlas.so \
--with-magma-home=/usr/local/src/magma-1.5.0 \
--with-r-home=/usr/local/src/R-3.1.1" \
magma_1.5.0-1.tar.gz

R command prompt
----------------
install.packages("magma",
configure.args = "--with-cuda-home=/opt/cuda
--with-magma-lib=/opt/magma/lib"
configure.args = "--with-lapack=/usr/local/atlas/lib64/libsatlas.so \
--with-magma-home=/usr/local/src/magma-1.5.0 \
--with-r-home=/usr/local/src/R-3.1.1"
)


--------------------------------------------------------------------------------
III. Known Issues
--------------------------------------------------------------------------------

* Performance (speed) of the QR solver may be suboptimal due to workarounds for
a bug in version 1.3.0 of the magma_dgeqrs_gpu routine.


--------------------------------------------------------------------------------
IV. Troubleshooting
Expand Down Expand Up @@ -248,11 +244,11 @@ cannot find -llapack
- If an alternative, installed LAPACK library is desired, then specify it using
the configuration option '--with-lapack'. See Section II(d).

cannot find -lmagmablas or -lmagma
- Check that the shared MAGMA libraries 'libmagmablas.so' and 'libmagma.so' are
cannot find -lmagma
- Check that the shared MAGMA sources are
installed on your system. Install them, if not. Refer to Section II(c).
- If they are installed, try supplying their directory path using the
configuration option '--with-magma-lib'. See Section II(d).
configuration option '--with-magma-home'. See Section II(d).


R Run-time Errors
Expand Down
67 changes: 67 additions & 0 deletions MD5
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
8f0e2cd40e05189ec81232da84bd6e1a *COPYING
73ab637c95c8ac53586ad63383f31cdd *ChangeLog
41354a359a950d8b01fd7015da692c9c *DESCRIPTION
32407b0000dca1262d5ae79eb6b2efe3 *INSTALL
2280c65898c35e3cc4406de62d5591cc *NAMESPACE
7ae7c3651a63677b5d19f0f79b5c2ac4 *R/AllGenerics.r
0fd7bd1e34a61517905b0ac7648edadb *R/Classes.r
83db8b129155879edd5394abe0c5dbcf *R/magAriths.r
26c0a2607d6070cf27c18dd537c87e36 *R/magFactors.r
b3542f41432a2b897de3292401665399 *R/magSolvers.r
1d81b96b1ee67a180921872426beaafd *R/magUtils.r
148260b02ac4fb6f5282dac388f04df5 *cleanup
3dec06adf97f1edf973b0172bc32db86 *configure
378499169b30549fea419e41b0a90fb5 *configure.ac
dc328f38f8241e9b06baa73dc0a4cffc *inst/CITATION
653f8fb438453be3e2abf132cf2d3db3 *man/backsolve.Rd
62299a88fde6682670012392fc09cba9 *man/gpu.Rd
5d5d438c4b47d8e5362af1474e4b0ad4 *man/lu.Rd
2ab45972f6f7a5021dd6f7c4d1cd9fbf *man/magma-class.Rd
fa1c83d80ce326f1e03fe1762dbf8650 *man/magma.Rd
522aa9e97a32ce0c110aa075496b2fe5 *man/magmaLU-class.Rd
e56bf7401e61d779303af3354f85054a *man/magmaQR-class.Rd
9d9736f21d2a4ad3616165e3ad08a9f0 *src/Makefile.in
7d5fb6df5d668708ae0adc3063073920 *src/include/cblas.h
b7a6db7b7113f0fada181c6551ed7628 *src/include/gnu/stubs-32.h
583f7b4ad3da81a6abd04eb0bedda2da *src/include/magma.h
634e9149c1a9a561e45d8a1bbe4899e5 *src/include/magma_bulge.h
3acd63edfe6c7b07dd2e7f0f63ea3f78 *src/include/magma_c.h
b0a28f624ee0a44c93d54cc60df8f405 *src/include/magma_cbulge.h
77c9ffe11af54fbb8cedbb1cd7b50a94 *src/include/magma_cbulgeinc.h
5e03b80ca7395d39c9d341d2c4d8ab7e *src/include/magma_clapack.h
926bbe7507c0d675c59fbf7acc855c14 *src/include/magma_d.h
f58ec1510fa2fc29a915813b2ab885c2 *src/include/magma_dbulge.h
55a551bb76ec432bd1a5f190701ba898 *src/include/magma_dbulgeinc.h
4196ba980162736f10641930cf8ddca2 *src/include/magma_dlapack.h
ed7021241404fb0fe6df2b3d99cddc86 *src/include/magma_ds.h
925fd142dad8503fd1ec4d36c655208d *src/include/magma_lapack.h
d587d1f3cb23db4c72dbd0a9e7307a93 *src/include/magma_s.h
3224f475fc75a0248030ce6993ebaf20 *src/include/magma_sbulge.h
d915a843903b8d713d46b4966cd76a95 *src/include/magma_sbulgeinc.h
3d5560d8ee310d7328a2b9ab3014d6d6 *src/include/magma_slapack.h
65b1d335a4f22e641ab44dc6184f7322 *src/include/magma_z.h
07b558b924b08b26568e5685179420ed *src/include/magma_zbulge.h
a1b4f0be8c8257ef66e53c38b4b98685 *src/include/magma_zbulgeinc.h
8128878591d7e4058ff7818b5817e527 *src/include/magma_zc.h
47c2b0df91b0e7e49c06f52e21f4d81f *src/include/magma_zlapack.h
7fc5789de32e359e8711b0b0dd9b6b12 *src/include/magmablas.h
35b8347b6671eb5ee9a31cfba958e4c7 *src/include/magmablas_c.h
dfda4612b57e30da40515d43385ab51b *src/include/magmablas_d.h
f9ac54a3d30ef1265bf38b5bde74e7ab *src/include/magmablas_ds.h
97b832fef3ba6f487ab928965a120c55 *src/include/magmablas_s.h
ada11fe61165197b33ecd2a110baca08 *src/include/magmablas_z.h
456c856a727c5403d14b6b3ec6f564b3 *src/include/magmablas_zc.h
94eb0f34cf187bcebab8f7a92887bf2e *src/magAriths.c
579bdb18c98658bd8ec131dc9e88b0e8 *src/magAriths.h
1a2287e375f765e59db9643a9a0f7071 *src/magFactors.c
5971e4b06c2ad948878cca54324793c7 *src/magFactors.h
1133c23184c3bad1701e7d19c4465dc5 *src/magSolvers.c
47d396d5bdd3353ae0f7bc847bc3a980 *src/magSolvers.h
4b6b4b4be94df1a3c1acb0c0fe828e0e *src/magUtils.c
02a2617f6d7a1144a7b80da991361956 *src/magUtils.h
eb1af5b1366c148007a2aada94f6f905 *tests/testing.r
cc4680349521e99e797af60e980642c6 *tools/config.guess
6adca7f3405b57aeecc1df1704f27ba1 *tools/config.sub
5cc51dc6eb45a90231a4e31efbc3f220 *tools/install-sh
b65c3f66a47925985fbf5ffecb22c48c *tools/mdate-sh
c7645c248f924f07869059b76300fea9 *tools/missing
61 changes: 30 additions & 31 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
useDynLib(magma)

export(
"forwardsolve",
"magma"
)

exportClasses(
"magma",
"magmaLU",
"magmaQR"
)

exportMethods(
"Arith",
"%*%",

"backsolve",
"chol",
"chol2inv",
"crossprod",
"gpu",
"gpu<-",
"lu",
"qr",
"show",
"solve",
"tcrossprod"
)


useDynLib(magma)

export(
"forwardsolve",
"magma"
)

exportClasses(
"magma",
"magmaLU",
"magmaQR"
)

exportMethods(
"Arith",
"%*%",

"backsolve",
"chol",
"chol2inv",
"crossprod",
"gpu",
"gpu<-",
"lu",
"qr",
"show",
"solve",
"tcrossprod"
)

9 changes: 5 additions & 4 deletions R/magAriths.r
Original file line number Diff line number Diff line change
Expand Up @@ -50,26 +50,28 @@ setMethod("Arith", signature(e1 = "numeric", e2 = "magma"),
#################### Multiplication Operators ####################

setMethod("%*%", signature(x = "magma", y = "magma"),
function(x, y) .Call("magMultmm", x, FALSE, y, FALSE)
function(x, y) { .Call("magMultmm", x, FALSE, y, FALSE) }
)

setMethod("%*%", signature(x = "magma", y = "matrix"),
function(x, y) .Call("magMultmm", x, FALSE, y, FALSE)
function(x, y) { .Call("magMultmm", x, FALSE, y, FALSE) }
)

setMethod("%*%", signature(x = "magma", y = "numeric"),
function(x, y) {
#cat("mmn\n")
if(ncol(x) == 1) .Call("magMultmm", x, FALSE, as.matrix(y), TRUE)
else .Call("magMultmv", x, FALSE, y, TRUE)
}
)

setMethod("%*%", signature(x = "matrix", y = "magma"),
function(x, y) .Call("magMultmm", x, FALSE, y, FALSE)
function(x, y) { .Call("magMultmm", x, FALSE, y, FALSE) }
)

setMethod("%*%", signature(x = "numeric", y = "magma"),
function(x, y) {
#cat("nmm\n");
if(nrow(y) == 1) .Call("magMultmm", as.matrix(x), FALSE, y, FALSE)
else .Call("magMultmv", y, FALSE, x, FALSE)
}
Expand Down Expand Up @@ -131,4 +133,3 @@ setMethod("tcrossprod", signature(x = "numeric", y = "magma"),
else .Call("magMultmv", y, TRUE, x, FALSE)
}
)

6 changes: 3 additions & 3 deletions R/magSolvers.r
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ setMethod("solve", signature(a = "magmaQR", b = "missing"),
n <- nrow(a$qr)
if(n != ncol(a$qr))
stop("only square matrices can be inverted in 'solve'", call.=FALSE)
callGeneric(a, diag(n))
.Call("magQRSolve", a, diag(n))
}
)

setMethod("solve", signature(a = "magmaQR", b = "numeric"),
function(a, b) as.numeric(callGeneric(a, as.matrix(b)))
function(a, b) as.numeric(.Call("magQRSolve", a, as.matrix(b)))
)


Expand Down Expand Up @@ -92,6 +92,7 @@ setMethod("solve", signature(a = "matrix", b = "magma"),

setMethod("backsolve", signature(r = "magma", x = "magma"),
function(r, x, k, upper.tri, transpose) {
#cat("utri=", upper.tri, "trans=", transpose, "\n", sep="")
.Call("magTriSolve", r, x, k, upper.tri, transpose)
}
)
Expand All @@ -115,4 +116,3 @@ forwardsolve <- function(l, x, k = ncol(l), upper.tri=FALSE, transpose=FALSE)
{
backsolve(l, x, k, upper.tri, transpose)
}

3 changes: 0 additions & 3 deletions R/magUtils.r
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,3 @@
.onUnload <- function(libname) {
.C("magUnload", PACKAGE="magma")
}



6 changes: 2 additions & 4 deletions cleanup
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
#
echo "Cleaning up after installing the magma package"

for f in config.log config.status config.cache ; do
for f in config.log config.status config.cache *.bck */*.bck; do
if test -w $f ; then
rm -f $f
fi
done

cd src
make clean
rm -f Makefile

if test -e Makefile; then make clean; rm -f Makefile; fi
Loading