praeclarum / webgpu-torch

Tensor computation with WebGPU acceleration
MIT License
576 stars 15 forks source link

Report: Some tests fail on Chromium MacOS 113.0.5672.63 #2

Open replete opened 1 year ago

replete commented 1 year ago

113.0.5672.63 (ungoogled chromium) MacOS Ventura 13.3.1:

Hope this helps.

Test Error
atan2([0], [-0.5]) Expected «-3.1415927410125732» to be close to «3.1415927410125732» (diff: < 0.0000005)Error: Expected «-3.1415927410125732» to be close to «3.1415927410125732» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
atan2([0], [0]) Expected «1.5707963705062866» to be close to «0» (diff: < 0.0000005)Error: Expected «1.5707963705062866» to be close to «0» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
atan2_([0], [-0.5]) Expected «-3.1415927410125732» to be close to «3.1415927410125732» (diff: < 0.0000005)Error: Expected «-3.1415927410125732» to be close to «3.1415927410125732» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
atan2_([0], [0]) Expected «1.5707963705062866» to be close to «0» (diff: < 0.0000005)Error: Expected «1.5707963705062866» to be close to «0» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([-2]) Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([-1]) Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([-0.5]) Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([0.5]) Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([1]) Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos([2]) Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([-2]) Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([-1]) Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([-0.5]) Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([0.5]) Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([1]) Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
cos_([2]) Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow([-0.5], [-0.5]) Expected «1.4142136573791504» to equal «0»Error: Expected «1.4142136573791504» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow([-0.5], [-0.5]) gradient Expected «-1.4142136573791504» to equal «0»Error: Expected «-1.4142136573791504» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow([-0.5], [0.30000001192092896]) Expected «0.8122524619102478» to equal «0»Error: Expected «0.8122524619102478» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow([-0.5], [0.30000001192092896]) gradient Expected «0.4873514473438263» to equal «0»Error: Expected «0.4873514473438263» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow_([-0.5], [-0.5]) Expected «1.4142136573791504» to equal «0»Error: Expected «1.4142136573791504» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
pow_([-0.5], [0.30000001192092896]) Expected «0.8122524619102478» to equal «0»Error: Expected «0.8122524619102478» to equal «0»at Expect.toEqual (https://praeclarum.org/webgpu-torch/tests/testfw.js:14:76)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415434)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([-2]) gradient Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([-1]) gradient Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([-0.5]) gradient Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([0.5]) gradient Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)Error: Expected «0.8775976896286011» to be close to «0.8775825500488281» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([1]) gradient Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)Error: Expected «0.5403115749359131» to be close to «0.5403023362159729» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
sin([2]) gradient Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)Error: Expected «-0.41615235805511475» to be close to «-0.416146844625473» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-2]) Expected «2.185011386871338» to be close to «2.185039758682251» (diff: < 0.000005)Error: Expected «2.185011386871338» to be close to «2.185039758682251» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-2]) gradient Expected «5.7742462158203125» to be close to «5.7743988037109375» (diff: < 0.000005)Error: Expected «5.7742462158203125» to be close to «5.7743988037109375» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-1]) Expected «-1.5573809146881104» to be close to «-1.5574077367782593» (diff: < 0.000005)Error: Expected «-1.5573809146881104» to be close to «-1.5574077367782593» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-1]) gradient Expected «3.425401210784912» to be close to «3.425518751144409» (diff: < 0.000005)Error: Expected «3.425401210784912» to be close to «3.425518751144409» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-0.5]) Expected «-0.5462930202484131» to be close to «-0.5463024973869324» (diff: < 0.000005)Error: Expected «-0.5462930202484131» to be close to «-0.5463024973869324» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([-0.5]) gradient Expected «1.2984015941619873» to be close to «1.2984464168548584» (diff: < 0.000005)Error: Expected «1.2984015941619873» to be close to «1.2984464168548584» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([0.5]) Expected «0.5462930202484131» to be close to «0.5463024973869324» (diff: < 0.000005)Error: Expected «0.5462930202484131» to be close to «0.5463024973869324» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([0.5]) gradient Expected «1.2984015941619873» to be close to «1.2984464168548584» (diff: < 0.000005)Error: Expected «1.2984015941619873» to be close to «1.2984464168548584» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([1]) Expected «1.5573809146881104» to be close to «1.5574077367782593» (diff: < 0.000005)Error: Expected «1.5573809146881104» to be close to «1.5574077367782593» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([1]) gradient Expected «3.425401210784912» to be close to «3.425518751144409» (diff: < 0.000005)Error: Expected «3.425401210784912» to be close to «3.425518751144409» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([2]) Expected «-2.185011386871338» to be close to «-2.185039758682251» (diff: < 0.000005)Error: Expected «-2.185011386871338» to be close to «-2.185039758682251» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan([2]) gradient Expected «5.7742462158203125» to be close to «5.7743988037109375» (diff: < 0.000005)Error: Expected «5.7742462158203125» to be close to «5.7743988037109375» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([-2]) Expected «2.185011386871338» to be close to «2.185039758682251» (diff: < 0.000005)Error: Expected «2.185011386871338» to be close to «2.185039758682251» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([-1]) Expected «-1.5573809146881104» to be close to «-1.5574077367782593» (diff: < 0.000005)Error: Expected «-1.5573809146881104» to be close to «-1.5574077367782593» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([-0.5]) Expected «-0.5462930202484131» to be close to «-0.5463024973869324» (diff: < 0.000005)Error: Expected «-0.5462930202484131» to be close to «-0.5463024973869324» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([0.5]) Expected «0.5462930202484131» to be close to «0.5463024973869324» (diff: < 0.000005)Error: Expected «0.5462930202484131» to be close to «0.5463024973869324» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([1]) Expected «1.5573809146881104» to be close to «1.5574077367782593» (diff: < 0.000005)Error: Expected «1.5573809146881104» to be close to «1.5574077367782593» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
tan_([2]) Expected «-2.185011386871338» to be close to «-2.185039758682251» (diff: < 0.000005)Error: Expected «-2.185011386871338» to be close to «-2.185039758682251» (diff: < 0.000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416699at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
xlogy([0], [0.30000001192092896]) gradient Expected «0» to be close to «-1.2039728164672852» (diff: < 0.0000005)Error: Expected «0» to be close to «-1.2039728164672852» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)
josephrocca commented 1 year ago

Looks like the same issue: https://twitter.com/praeclarum/status/1659490569633280001 - just related to precision thresholds.

xenova commented 1 year ago

The only real issue is xlogy which returns 0; all other's are just precision issues.

praeclarum commented 1 year ago

The one that's bothering me (yeah @xenova, xlogy has been driving me nuts) is the pow([-0.5], [-0.5]). It's interesting that this hardware returns sqrt(2). It should be 2i*sqrt(2)

The hardware is ignoring the imaginary part but keeping the sort(2). My hardware (ATI on an iMac) returns 0. As does PyTorch. But this hardware is interesting in that it's keeping some of the values.

Fortunately, this is pretty edge-case stuff and shouldn't affect real nets. But it certainly is interesting.

xenova commented 1 year ago

The one that's bothering me (yeah @xenova, xlogy has been driving me nuts) is the pow([-0.5], [-0.5]). It's interesting that this hardware returns sqrt(2). It should be 2i*sqrt(2)

Surely that's just because it's float and not complex?

>>> import torch
>>> torch.tensor(-0.5).pow(-0.5)
tensor(nan)
>>> torch.tensor(-0.5).to(torch.complex64).pow(-0.5)
tensor(0.-1.4142j)
praeclarum commented 1 year ago

Yeah. It shouldn't be returning any number at all since the GPU doesn't do complex natively. The WebGPU spec says all NaNs should be converted to 0 (flush to zero they call it):

https://www.w3.org/TR/WGSL/#floating-point-evaluation

@replete Would you let me know what your Mac hardware is? I'm not too concerned but it would be nice to know which models are doing this.

twodawg commented 1 year ago

pow([0], [0]) gradient | Expected «-Infinity» to be close to «0» (diff: < 0.0000005)Error: Expected «-Infinity» to be close to «0» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045) xlogy([0], [0.30000001192092896]) gradient | Expected «0» to be close to «-1.2039728164672852» (diff: < 0.0000005)Error: Expected «0» to be close to «-1.2039728164672852» (diff: < 0.0000005)at Expect.toBeCloseTo (https://praeclarum.org/webgpu-torch/tests/testfw.js:9:152)at compareArrays (https://praeclarum.org/webgpu-torch/tests/tests.js:1:415297)at https://praeclarum.org/webgpu-torch/tests/tests.js:1:416489at step (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414312)at Object.next (https://praeclarum.org/webgpu-torch/tests/tests.js:1:414417)at fulfilled (https://praeclarum.org/webgpu-torch/tests/tests.js:1:413045)

These errors are on Mac Mini M1, MacOS 13.1, Edge 113.0.1774.50

replete commented 1 year ago

Yeah. It shouldn't be returning any number at all since the GPU doesn't do complex natively. The WebGPU spec says all NaNs should be converted to 0 (flush to zero they call it):

https://www.w3.org/TR/WGSL/#floating-point-evaluation

@replete Would you let me know what your Mac hardware is? I'm not too concerned but it would be nice to know which models are doing this.

MacBook Pro 13" 2020 with Intel i5-1038g7 2.0ghz 4 core Ice Lake '10th Gen' 15w, Intel® Iris® Plus Graphics (G7) with 64 'execution units'.

Ran on real Chrome 113.0.5672.126, same test results.

wgaylord commented 9 months ago

Interestingly I also got the same results for xlogy on Chrome Version 119.0.6045.160 (Official Build) (64-bit) running on Windows 10 on a Intel i5 8265U cpu (has integrated graphics). So I wonder if this is just Chrome not following the spec?