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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions