18 #include <cuda_runtime_api.h>
24 #include "magma_lapack.h"
29 #if defined(PRECISION_z) || defined(PRECISION_c)
30 #define FLOPS(m, n) ( 6.*FMULS_GELQF(m, n) + 2.*FADDS_GELQF(m, n) )
32 #define FLOPS(m, n) ( FMULS_GELQF(m, n) + FADDS_GELQF(m, n) )
38 int main(
int argc,
char** argv)
43 float flops, gpu_perf, cpu_perf;
44 float matnorm,
work[1];
46 cuFloatComplex *h_A, *h_R, *tau, *h_work, tmp[1];
50 magma_int_t size[10] = {1024,2048,3072,4032,5184,6016,7040,8064,9088,9984};
57 for(i = 1; i<argc; i++){
58 if (strcmp(
"-N", argv[i])==0)
60 else if (strcmp(
"-M", argv[i])==0)
70 printf(
" testing_cgelqf -M %d -N %d\n\n", M,
N);
73 printf(
"\nUsage: \n");
74 printf(
" testing_cgelqf -M %d -N %d\n\n", M,
N);
79 printf(
"\nUsage: \n");
80 printf(
" testing_cgelqf -M %d -N %d\n\n", 1024, 1024);
95 lwork =
max( lwork, M*nb );
100 printf(
" M N CPU GFlop/s GPU GFlop/s ||R||_F / ||A||_F\n");
101 printf(
"==========================================================\n");
109 flops =
FLOPS( (
float)M, (
float)N ) / 1000000;
119 magma_cgelqf( M, N, h_R, lda, tau, h_work, lwork, &info);
122 printf(
"Argument %d of magma_cgelqf had an illegal value.\n", -info);
133 printf(
"Argument %d of lapack_cgelqf had an illegal value.\n", -info);
143 printf(
"%5d %5d %6.2f %6.2f %e\n",
144 M, N, cpu_perf, gpu_perf,