B.28. SAL Benchmark Usage

This appendix presents the displays from the SAL benchmarks.

B.28.1. fastconv

fastconv -- Fast Convolution

    -2: pulse fixed, phased, interleaved complex
    -6: pulse fixed, interleaved, interleaved complex

   -12: range cells fixed, phased, interleaved complex
   -16: range cells fixed, interleaved, interleaved complex

  -102: pulse fixed, phased, split complex
  -106: pulse fixed, interleaved, split complex
   
  -112: range cells fixed, phased, split complex
  -116: range cells fixed, interleaved, split complex

  Parameters: default
    -cal         4  calibrate with size 2^4
    -start       4  start with size 2^4
    -stop       16  stop  with size 2^16
    -loop_start 10  run problem 10 times for calibration
    -param      64  number of pulses / size of range

B.28.2. fft

fft -- SAL FFT
        in-place complex scale
   -1:      no    split    no
   -2:     yes    split    no
   -5:      no    split   yes
   -6:     yes    split   yes

  -11:      no    inter    no
  -12:     yes    inter    no
  -15:      no    inter   yes
  -16:     yes    inter   yes

B.28.3. lvgt

SAL lvgt
  -1 -- SAL lvgtx      (float) Z(i) = A(i) > B(i) ? 1    : 0
  -2 -- SAL lvgtx/vmul (float) Z(i) = A(i) > B(i) ? A(i) : 0
 -11 -- C (float) Z(i) = A(i) > B(i) ? 1    : 0
 -12 -- C (float) Z(i) = A(i) > B(i) ? A(i) : 0

B.28.4. memwrite

memwrite -- SAL memory write
  -1: use vfillx to fill a vector with a scalar

B.28.5. vatan2

atan2 -- SAL benchmark;
   -1 : SAL vatan2x;
   -2 : SAL vatan2dx;
   -3 : SAL vatan2x, input strides 2;
  -11 : C = atan2(A,B) {float};
  -12 : C = atan2(A,B) {double};
  -13 : C = atan2(A,B) {float}, input strides 2;
  -21 : C = atan2(A,B) {float}, scalar;

B.28.6. vma

vma -- SAL vector multiply-add
    -1: vma_x
   -11: vsmax
   -12: cvsmax
   -13: zvsmax

B.28.7. vmul

vmul -- SAL vector multiply
   -1: vmulx
   -2: cvmulx
   -3: zvmulx

  -11: vsmulx
  -13: cvsmulx
  -14: zvsmulx

  -31: vmulx
  -32: cvmulx B = A * B
  -33: cvmulx A = A * B

B.28.8. vthresh

SAL vthres
  -1 -- SAL vthresx (float) Z(i) = A(i) > b ? A(i) : 0
  -2 -- SAL vthrx   (float) Z(i) = A(i) > b ? A(i) : b (optional)
 -11 -- C           (float) Z(i) = A(i) > b ? A(i) : 0