|
- #!/usr/bin/Rscript
-
- argv <- commandArgs(trailingOnly = TRUE)
-
- 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(runif(n*n), ncol = n, nrow = n, byrow = TRUE)
- B <- matrix(runif(n*n), ncol = n, nrow = n, byrow = TRUE)
-
- l = 1
-
- start <- proc.time()[3]
-
- while ( l <= loops ) {
-
- C <- A %*% B
- l = l + 1
- }
-
- end <- proc.time()[3]
- timeg = end - start
- mflops = ( 2.0 *n*n*n ) * loops / ( timeg * 1.0e6 )
-
- st = sprintf("%.0fx%.0f :",n , n)
- cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, timeg))
-
- n = n + nstep
-
- }
-
|