User Tools

Site Tools


distance_to_dhrystone_benchmark_on_legup

Working:

  • Structs in Verilog, steering code based on size, alignment, byte enables
  • .mif generation of any struct
  • get element pointer of any struct
  • Struct assignment, which boils down to memset, memcpy, which in turn boils down to casting struct ptr to long long ptr
  • Alignments are handled with a self-defined TargetData
  • Pointers in struct, pointers to structs (reduce pointers to 32 bits)
  • Comparison to NULL pointer

DMIPS/MHz (on anything):

  • 1.06 DMIPS/MHz

DMIPS (on Cyclone II with peephole optimizations):

  • Running 21 Dhrystones - 20 Dhrystones = 491 cycles
  • Fmax = 196.46 MHz
  • 1 Dhrystone = 2.499 us
  • 400,120 Dhrystones per second
  • 227.7 DMIPS

DMIPS (on Stratix II):

  • Fmax = 237.02 MHz ( period = 4.219 ns )
  • 251 DMIPS

Without inlining (inlining is not allowed by dhrystone)

NIOS II fast (modelsim) at 50MHz

  • 20 Dhrystones = 490 us
  • 1 Dhrystone = 24.5 us
  • 40,816 Dhrystones per second
  • 23.2 DMIPS
  • 0.46 DMIPS/MHz
  • NIOS II fast can go up to ~187 MHz → 86 DMIPS

Tiger MIPS at 25MHz

  • 20 Dhrystones = 1154 us
  • 1 Dhrystone = 57.7 us
  • 17,331 Dhrystones per second
  • 9.9 DMIPS
  • 0.40 DMIPS/MHz

OLD DMIPS/MHz (on anything):

  • 1.07 DMIPS/MHz

OLD DMIPS (on Cyclone II):

  • Running 21 Dhrystones - 20 Dhrystones = 534 cycles
  • 84.37 MHz (period = 11.853 ns)
  • 1 Dhrystone = 6.3295 us
  • 157,990 Dhrystones per second
  • 89.9 DMIPS

OLD DMIPS (on Stratix II):

  • 134.75 MHz (period = 7.421 ns)
  • 144.2 DMIPS
distance_to_dhrystone_benchmark_on_legup.txt · Last modified: 2010/12/15 15:53 (external edit)