50 lines
1.0 KiB
R
Executable File
50 lines
1.0 KiB
R
Executable File
#!/usr/bin/Rscript
|
|
|
|
argv <- commandArgs(trailingOnly = TRUE)
|
|
|
|
if (!is.null(options("matprod")[[1]])) options(matprod = "blas")
|
|
|
|
nfrom <- 128
|
|
nto <- 2048
|
|
nstep <- 128
|
|
loops <- 1
|
|
|
|
if (length(argv) > 0) {
|
|
for (z in 1:length(argv)) {
|
|
if (z == 1) {
|
|
nfrom <- as.numeric(argv[z])
|
|
} else if (z == 2) {
|
|
nto <- as.numeric(argv[z])
|
|
} else if (z == 3) {
|
|
nstep <- as.numeric(argv[z])
|
|
} else if (z == 4) {
|
|
loops <- as.numeric(argv[z])
|
|
}
|
|
}
|
|
}
|
|
|
|
p <- Sys.getenv("OPENBLAS_LOOPS")
|
|
if (p != "") {
|
|
loops <- as.numeric(p)
|
|
}
|
|
|
|
cat(sprintf("From %.0f To %.0f Step=%.0f Loops=%.0f\n", nfrom, nto, nstep, loops))
|
|
cat(sprintf(" SIZE Flops Time\n"))
|
|
|
|
n <- nfrom
|
|
while (n <= nto) {
|
|
A <- matrix(rnorm(n * n), nrow = n)
|
|
B <- matrix(rnorm(n * n), nrow = n)
|
|
|
|
z <- system.time(for (l in 1:loops) {
|
|
solve(A, B)
|
|
})
|
|
|
|
mflops <- (8.0 / 3 * n * n * n) * loops / (z[3] * 1e+06)
|
|
|
|
st <- sprintf("%.0fx%.0f :", n, n)
|
|
cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, z[3]))
|
|
|
|
n <- n + nstep
|
|
}
|