Skip to content

Are We Fast Yet Benchmarks #225

@smarr

Description

@smarr

I finally setup yksom to run the Are We Fast Yet benchmarks: http://github.com/smarr/are-we-fast-yet

CD and Havlak are failing.

Havlak seems not unusual:

yksom  --cp .:Core:CD:DeltaBlue:Havlak:Json:NBody:Richards:~/.local/yksom/SOM/Smalltalk Harness.som  Havlak 1  1500

Starting Havlak benchmark ...
thread 'main' panicked at 'Not enough stack space to execute block.', src/lib/vm/core.rs:404:13

So, is there a way to easily increase the available stack?

CD will require some debugging.
It runs into a division by zero, which likely means that there's some arithmetic operation that's not quite right:

yksom  --cp .:Core:CD:DeltaBlue:Havlak:Json:NBody:Richards:~/.local/yksom/SOM/Smalltalk Harness.som  CD 1  250
Starting CD benchmark ...
Traceback (most recent call at bottom):
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/System.som, line 46, column 10:
        ^ (application respondsTo: #run:)
              ifTrue:  [ application run: arguments ]
              ifFalse: [ application run ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Boolean.som, line 30, column 8:
        self ifTrue:  [ ^trueBlock value  ].
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/True.som, line 32, column 24:
    ifTrue:  block = ( ^block value )
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Boolean.som, line 30, column 25:
        self ifTrue:  [ ^trueBlock value  ].
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/System.som, line 47, column 23:
            ifTrue:  [ application run: arguments ]
  File /data/home/gitlab-runner/builds/d258e35c/0/sm951/awfy-runs/awfy/benchmarks/SOM/Harness.som, line 46, column 4:
    run runBenchmark.
  File /data/home/gitlab-runner/builds/d258e35c/0/sm951/awfy-runs/awfy/benchmarks/SOM/Run.som, line 50, column 4:
    self doRuns: benchmarkSuite new.
  File /data/home/gitlab-runner/builds/d258e35c/0/sm951/awfy-runs/awfy/benchmarks/SOM/Run.som, line 70, column 4:
    1 to: numIterations do: [:i |
        self measure: bench
      ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 80, column 8:
        self to: limit by: 1 do: block
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 8:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Block.som, line 40, column 8:
        block value.
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 36:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File /data/home/gitlab-runner/builds/d258e35c/0/sm951/awfy-runs/awfy/benchmarks/SOM/Run.som, line 71, column 6:
      self measure: bench
  File /data/home/gitlab-runner/builds/d258e35c/0/sm951/awfy-runs/awfy/benchmarks/SOM/Run.som, line 59, column 5:
    (bench innerBenchmarkLoop: innerIterations) ifFalse: [
  File CD/CD.som, line 50, column 20:
    ^ self verify: (self benchmark: innerIterations) resultFor: innerIterations
  File CD/CD.som, line 40, column 4:
    0 to: numFrames - 1 do: [:i |
        | time collisions |
        time := i // 10.0.
        collisions := detector handleNewFrame: (simulator simulate: time).
        actualCollisions := actualCollisions + collisions size ].
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 80, column 8:
        self to: limit by: 1 do: block
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 8:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Block.som, line 40, column 8:
        block value.
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 36:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File CD/CD.som, line 43, column 20:
      collisions := detector handleNewFrame: (simulator simulate: time).
  File CD/CollisionDetector.som, line 60, column 18:
    allReduced := self reduceCollisionSet: motions.
  File CD/CollisionDetector.som, line 160, column 4:
    motions forEach: [:motion | self draw: motion on: voxelMap ].
  File Core/Vector.som, line 69, column 4:
    first to: last - 1 do: [ :i | block value: (storage at: i) ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 80, column 8:
        self to: limit by: 1 do: block
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 8:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Block.som, line 40, column 8:
        block value.
  File /home/gitlab-runner/.local/yksom/SOM/Smalltalk/Integer.som, line 86, column 36:
        [ i <= limit ] whileTrue: [ block value: i. i := i + step ]
  File Core/Vector.som, line 69, column 34:
    first to: last - 1 do: [ :i | block value: (storage at: i) ]
  File CD/CollisionDetector.som, line 160, column 32:
    motions forEach: [:motion | self draw: motion on: voxelMap ].
  File CD/CollisionDetector.som, line 185, column 4:
    self recurse: voxelMap seen: seen voxel: (self voxelHash: motion posOne) motion: motion
  File CD/CollisionDetector.som, line 142, column 5:
    (self isInVoxel: nextVoxel motion: motion) ifFalse: [ ^ self ].
  File CD/CollisionDetector.som, line 97, column 14:
    low_x  := (v_x - r - x0) // xv.
Division by zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions