int speedTest(){ clock_t t0,t1,dt,bestTime=0xFFFFF; unsigned int crc = 0; nm64s* buf[4]={buffer0, buffer1, buffer2, buffer3}; NmppsFFTSpec spec; nmppsFFT8192FwdInit(&spec,SKIP_SINCOS,(nm64s*)buffer0,(nm64s*)buffer0,(nm64s*)buffer0,(nm64s*)buffer0,(nm64s*)buffer0,(nm64s*)buffer0); int bestRoute; for(int i0=0; i0<4; i0++){ nm32sc* src=(nm32sc*)buf[i0]; for(int i1=0; i1<4; i1++){ nm32sc* dst=(nm32sc*)buf[i1]; for(int i2=0; i2<4; i2++){ spec.buffer[0]=(nm32sc*)buf[i2]; for(int i3=0; i3<4; i3++){ spec.buffer[1]=(nm32sc*)buf[i3]; for(int i4=0; i4< 4; i4++){ spec.fftTable[0]=buf[i4]; for(int i5=0; i5<4; i5++){ spec.fftTable[1]=buf[i5]; for(int i6=0; i6< 4; i6++){ spec.fftTable[2]=buf[i6]; for(int i7=0; i7<4; i7++){ spec.fftTable[3]=buf[i7]; if (memoryOverflow(i0, i1, i2, i3, i4, i5, i6, i7)) continue; t0=clock(); dt=nmppsFFT8192Fwd(dst,dst,&spec); t1=clock(); dt =t1-t0; if (dt<=bestTime){ bestTime=dt; printf("%d%d%d%d%d%d%d%d\t%d\n",i0,i1,i2,i3,i4,i5,i6,i7, dt); } //if (dt<155000) // printf("%d%d%d%d%d%d%d%d\t%d\n",i0,i1,i2,i3,i4,i5,i6,i7, dt); } } } } } } } } printf("Best time=%d; %d/8192/2=%f ; Best route = %07x \n",bestTime,bestTime,float(bestTime)/8192/2,bestRoute); return bestTime; }
Pointer fromAVAIL() { assert(initialized); if (freeList == NIL) // Out of memory. Try to recover. memoryOverflow(); Pointer p = freeList; freeList = memory[freeList].nextFree; return p; }