 void initMTGPU(unsigned int seed, unsigned int blocks, unsigned int threads, unsigned int nPerRng, unsigned int mt_rng_count);
 }
 
+#ifdef PERFORMANCE_METRICS
+float g_time;
+cudaEvent_t start, stop;
+#endif // PERFORMANCE_METRICS
+
 //! Perform updating neurons for one time step.
 __global__ void advanceNeuronsDevice( int n, uint64_t simulationStep, int maxSynapses, const BGFLOAT deltaT, float* randNoise, AllNeurons* allNeuronsDevice, AllSynapses* allSynapsesDevice );
 

 */
void LIFGPUModel::setupSim(const SimulationInfo *sim_info, const AllNeurons &neurons, const AllSynapses &synapses)
{
    LIFModel::setupSim(sim_info, neurons, synapses);
    allocDeviceStruct(sim_info, neurons, synapses);


#ifdef PERFORMANCE_METRICS
	cudaEventRecord( stop, 0 );
	cudaEventSynchronize( stop );
	cudaEventElapsedTime( &g_time, start, stop );
	t_gpu_rndGeneration += g_time;
#endif // PERFORMANCE_METRICS

	// display running info to console
