Révision 250 BLAS/xGEMM/xGEMM.c

xGEMM.c (revision 250)
30 30
#include "fortran_common.h"
31 31
#include "fortran_thunking.h"
32 32
#elif FBLAS
33
#include <cblas.h>
34
#include <cblas_f77.h>
33
#include <f77blas.h>
35 34
#elif GSL
36 35
#include <gsl_cblas.h>
37 36
#elif ACML
......
43 42

  
44 43
#ifdef CLBLAS
45 44

  
46
#ifdef DOUBLE
45
#ifdef FP64
47 46
#define LENGTH cl_double
48 47
#else
49 48
#define LENGTH cl_float
......
51 50

  
52 51
#else
53 52

  
54
#ifdef DOUBLE
53
#ifdef FP64
55 54
#define LENGTH double
56 55
#else
57 56
#define LENGTH float
......
59 58

  
60 59
#endif
61 60

  
62
#ifdef FBLAS
61
/* #ifdef FBLAS */
63 62

  
64
#ifdef DOUBLE
63
/* #ifdef FP64 */
65 64

  
66
void F77_dgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT, 
67
	       const double *, FINT, const double *, double *, FINT);
65
/* void F77_dgemm(FCHAR, FCHAR, FINT, FINT, FINT, const double *, const double *, FINT,  */
66
/* 	       const double *, FINT, const double *, double *, FINT); */
68 67

  
69
#else
68
/* #else */
70 69

  
71
void F77_sgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT, 
72
	       const float *, FINT, const float *, float *, FINT);
70
/* void F77_sgemm(FCHAR, FCHAR, FINT, FINT, FINT, const float *, const float *, FINT,  */
71
/* 	       const float *, FINT, const float *, float *, FINT); */
73 72

  
74
#endif
75
#endif
73
/* #endif */
74
/* #endif */
76 75

  
77 76
/* Matrix with only defined triangular terms */
78 77
/* Even if there are 0 in matrix, must be defined at all ! */
......
312 311
  /* Get third timer after memory operation */
313 312
  gettimeofday(&tv3, &tz);
314 313

  
315
#ifdef DOUBLE
314
#ifdef FP64
316 315

  
317 316
  for (i=0;i<RUNS;i++)
318 317
    {
......
428 427
  /* Get third timer after memory operation */
429 428
  gettimeofday(&tv3, &tz);
430 429

  
431
#ifdef DOUBLE
430
#ifdef FP64
432 431

  
433 432
  for (i=0;i<RUNS;i++)
434 433
    {
......
473 472
  printf("Using CuBLAS/Thunking: %i iterations for %ix%i matrix\n",
474 473
	 RUNS,dim,dim);
475 474

  
476
#ifdef DOUBLE
475
#ifdef FP64
477 476

  
478 477
  for (i=0;i<RUNS;i++)
479 478
    {      
......
503 502
  printf("Using FBLAS: %i iterations for %ix%i matrix\n",
504 503
	 RUNS,dim,dim);
505 504
  
506
#ifdef DOUBLE
505
#ifdef FP64
507 506

  
508 507
  for (i=0;i<RUNS;i++)
509 508
    {    
510
      F77_dgemm(&transa,&transa,&dim,&dim,&dim,&alpha,B,&dim,A,&dim,&beta,C,&dim);
511
      F77_dgemm(&transb,&transb,&dim,&dim,&dim,&alpha,A,&dim,B,&dim,&beta,D,&dim);
509
      dgemm_(&transa,&transa,&dim,&dim,&dim,&alpha,B,&dim,A,&dim,&beta,C,&dim);
510
      dgemm_(&transb,&transb,&dim,&dim,&dim,&alpha,A,&dim,B,&dim,&beta,D,&dim);
512 511
    }
513 512

  
514 513
#else
515 514

  
516 515
  for (i=0;i<RUNS;i++)
517 516
    {    
518
      F77_sgemm(&transa,&transa,&dim,&dim,&dim,&alpha,B,&dim,A,&dim,&beta,C,&dim);
519
      F77_sgemm(&transb,&transb,&dim,&dim,&dim,&alpha,A,&dim,B,&dim,&beta,D,&dim);
517
      sgemm_(&transa,&transa,&dim,&dim,&dim,&alpha,B,&dim,A,&dim,&beta,C,&dim);
518
      sgemm_(&transb,&transb,&dim,&dim,&dim,&alpha,A,&dim,B,&dim,&beta,D,&dim);
520 519
    }
521 520

  
522 521
#endif
......
529 528
  printf("Using ACML: %i iterations for %ix%i matrix\n",
530 529
	 RUNS,dim,dim);
531 530
  
532
#ifdef DOUBLE
531
#ifdef FP64
533 532

  
534 533
  for (i=0;i<RUNS;i++)
535 534
    {    
......
558 557
     NonUnit : Matrix is not unit
559 558
   */
560 559

  
561
#ifdef DOUBLE
560
#ifdef FP64
562 561

  
563 562
  for (i=0;i<RUNS;i++)
564 563
    {  
......
591 590
     NonUnit : Matrix is not unit
592 591
   */
593 592

  
594
#ifdef DOUBLE
593
#ifdef FP64
595 594

  
596 595
  for (i=0;i<RUNS;i++)
597 596
    {  

Formats disponibles : Unified diff