20 #include <cuda_runtime_api.h>
26 #include "magma_lapack.h"
31 #if defined(PRECISION_z) || defined(PRECISION_c)
32 #define FLOPS(n) ( 6. * FMULS_HETRD(n) + 2. * FADDS_HETRD(n))
34 #define FLOPS(n) ( FMULS_HETRD(n) + FADDS_HETRD(n))
40 int main(
int argc,
char** argv)
45 float eps, flops, gpu_perf, cpu_perf;
46 float *h_A, *h_R, *h_Q, *h_work, *
work;
48 float *
diag, *offdiag, *rwork;
49 float result[2] = {0., 0.};
53 magma_int_t size[10] = {1024,2048,3072,4032,5184,6016,7040,8064,9088,10112};
63 for(i = 1; i<argc; i++){
64 if (strcmp(
"-N", argv[i])==0) {
68 else if (strcmp(
"-U", argv[i])==0)
70 else if (strcmp(
"-L", argv[i])==0)
74 printf(
" testing_ssytrd -L|U -N %d\n\n", N);
77 printf(
"\nUsage: \n");
78 printf(
" testing_ssytrd -L|U -N %d\n\n", 1024);
83 printf(
"\nUsage: \n");
84 printf(
" testing_ssytrd -L|U -N %d\n\n", 1024);
88 checkres = getenv(
"MAGMA_TESTINGS_CHECK") != NULL;
113 #if defined(PRECISION_z) || defined(PRECISION_c)
119 printf(
" N CPU GFlop/s GPU GFlop/s |A-QHQ'|/N|A| |I-QQ'|/N \n");
120 printf(
"=============================================================\n");
127 flops =
FLOPS( (
float)N ) / 1e6;
139 h_A[i*lda+j] = (h_A[j*lda+i]);
149 tau, h_work, lwork, &info);
152 printf(
"Argument %d of magma_ssytrd had an illegal value\n", -info);
164 #if defined(PRECISION_z) || defined(PRECISION_c)
166 h_A, &lda, diag, offdiag,
167 h_Q, &lda, h_R, &lda,
168 tau, work, rwork, &result[0]);
171 h_A, &lda, diag, offdiag,
172 h_Q, &lda, h_R, &lda,
173 tau, work, rwork, &result[1]);
178 h_A, &lda, diag, offdiag,
179 h_Q, &lda, h_R, &lda,
180 tau, work, &result[0]);
183 h_A, &lda, diag, offdiag,
184 h_Q, &lda, h_R, &lda,
185 tau, work, &result[1]);
195 h_work, &lwork, &info);
199 printf(
"Argument %d of lapackf77_ssytrd had an illegal value.\n", -info);
207 printf(
"%5d %6.2f %6.2f %e %e\n",
208 N, cpu_perf, gpu_perf,
209 result[0]*eps, result[1]*eps );
211 printf(
"%5d %6.2f %6.2f\n",
212 N, cpu_perf, gpu_perf );
230 #if defined(PRECISION_z) || defined(PRECISION_c)