Exemple #1
0
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;
}
Exemple #2
0
Pointer fromAVAIL()
{
  assert(initialized);
  if (freeList == NIL)
    // Out of memory.  Try to recover.
    memoryOverflow();

  Pointer p = freeList;
  freeList = memory[freeList].nextFree;
  return p;
}