beehive-lab / TornadoVM

TornadoVM: A practical and efficient heterogeneous programming framework for managed languages
https://www.tornadovm.org
Apache License 2.0
1.17k stars 109 forks source link

Unable to build sketch for method: ... (Unsupported class file major version 61) for jdk17 - asm ver 9 needed. #152

Closed yazun closed 2 years ago

yazun commented 2 years ago

Describe the bug

We are trying to naively port our standard to start with TornadoVM using JDK17 and dev-013 from develop branch. We ported a selected algorithm but are unable to run it.

Code compiles fine:

file build/gaia/cu7/algo/character/periodsearch/methods/MethodLeastSquareGPU.class build/gaia/cu7/algo/character/periodsearch/methods/MethodLeastSquareGPU.class: compiled Java class data, version 61.0

but when trying to run we get puzzling error related to asm not handling java17 (it started jdk17 support with ver 8 or 9 I think), as the project has been recompiled with jdk17:

WARNING: Using incubator modules: jdk.incubator.foreign, jdk.incubator.vector
JUnit version 4.13.1
........#pragma OPENCL EXTENSION cl_khr_fp64 : enable
__kernel void lookupBufferAddress(__global uchar *_heap_base, ulong _frame_base, __constant uchar *_constant_region, __local uchar *_local_region, __global int *_atomics)
{

  __global ulong *_frame = (__global ulong *) &_heap_base[_frame_base];

  // BLOCK 0
  _frame[0]  =  (ulong) _heap_base;
}  //  kernel

java.lang.IllegalArgumentException: Unsupported class file major version 61
        at org.objectweb.asm@7.2.0/org.objectweb.asm.ClassReader.<init>(ClassReader.java:195)
        at org.objectweb.asm@7.2.0/org.objectweb.asm.ClassReader.<init>(ClassReader.java:176)
        at org.objectweb.asm@7.2.0/org.objectweb.asm.ClassReader.<init>(ClassReader.java:162)
        at org.objectweb.asm@7.2.0/org.objectweb.asm.ClassReader.<init>(ClassReader.java:283)
        at tornado.annotation@0.13-dev/uk.ac.manchester.tornado.annotation.ASMClassVisitor.getParallelAnnotations(ASMClassVisitor.java:56)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.graal.phases.TornadoApiReplacement.replaceLocalAnnotations(TornadoApiReplacement.java:89)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.graal.phases.TornadoApiReplacement.run(TornadoApiReplacement.java:60)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.graal.phases.TornadoApiReplacement.run(TornadoApiReplacement.java:56)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:212)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:147)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.PhaseSuite.run(PhaseSuite.java:221)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:212)
        at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:147)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:223)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:184)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:174)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
java.util.concurrent.ExecutionException: uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.lookup(TornadoSketcher.java:152)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addInner(TornadoTaskSchedule.java:363)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addInner(TornadoTaskSchedule.java:1836)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addTask(TornadoTaskSchedule.java:1920)
        at tornado.api@0.13-dev/uk.ac.manchester.tornado.api.TaskSchedule.task(TaskSchedule.java:163)
        at gaia.cu7.algo.character.periodsearch.methods.MethodLeastSquareGPU.compute(MethodLeastSquareGPU.java:197)
        at gaia.cu7.algo.character.periodsearch.methods.MethodLeastSquareGPU.computeFrequencyGrammePower(MethodLeastSquareGPU.java:104)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.extremaExtractionAfterTimeseriesAreSet(PeriodMethod.java:813)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:719)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:679)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:646)
        at gaia.cu7.algo.character.periodsearch.methods.test.MethodLeastSquareTest.testGPUGaiaSource4660664932119220224(MethodLeastSquareTest.java:374)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at junit@4.13.1/org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at junit@4.13.1/org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at junit@4.13.1/org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at junit@4.13.1/org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at junit@4.13.1/org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at junit@4.13.1/org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:128)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at junit@4.13.1/org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:128)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at junit@4.13.1/org.junit.runner.JUnitCore.run(JUnitCore.java:115)
        at junit@4.13.1/org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
        at junit@4.13.1/org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:251)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:184)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:174)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:251)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:184)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:174)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
java.util.concurrent.ExecutionException: uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.lookup(TornadoSketcher.java:152)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addInner(TornadoTaskSchedule.java:363)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addInner(TornadoTaskSchedule.java:1836)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule.addTask(TornadoTaskSchedule.java:1920)
        at tornado.api@0.13-dev/uk.ac.manchester.tornado.api.TaskSchedule.task(TaskSchedule.java:163)
        at gaia.cu7.algo.character.periodsearch.methods.MethodLeastSquareGPU.compute(MethodLeastSquareGPU.java:197)
        at gaia.cu7.algo.character.periodsearch.methods.MethodLeastSquareGPU.computeFrequencyGrammePower(MethodLeastSquareGPU.java:104)
        at gaia.cu7.algo.character.periodsearch.refine.QuadraticRefiner.refine(QuadraticRefiner.java:154)
        at gaia.cu7.algo.character.periodsearch.refine.QuadraticRefiner.refine(QuadraticRefiner.java:105)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.extremaExtractionAfterTimeseriesAreSet(PeriodMethod.java:851)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:719)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:679)
        at gaia.cu7.algo.character.periodsearch.methods.PeriodMethod.search(PeriodMethod.java:646)
        at gaia.cu7.algo.character.periodsearch.methods.test.MethodLeastSquareTest.testGPUGaiaSource4660664932119220224(MethodLeastSquareTest.java:374)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at junit@4.13.1/org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at junit@4.13.1/org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at junit@4.13.1/org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at junit@4.13.1/org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at junit@4.13.1/org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at junit@4.13.1/org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at junit@4.13.1/org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:128)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at junit@4.13.1/org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:128)
        at junit@4.13.1/org.junit.runners.Suite.runChild(Suite.java:27)
        at junit@4.13.1/org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at junit@4.13.1/org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at junit@4.13.1/org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at junit@4.13.1/org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at junit@4.13.1/org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at junit@4.13.1/org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at junit@4.13.1/org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at junit@4.13.1/org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at junit@4.13.1/org.junit.runner.JUnitCore.run(JUnitCore.java:115)
        at junit@4.13.1/org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
        at junit@4.13.1/org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:251)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:184)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:174)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: computeGPU(Unsupported class file major version 61)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:251)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:184)
        at tornado.runtime@0.13-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:174)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
E................................I..
Time: 6.308
There was 1 failure:
1) testGPUGaiaSource4660664932119220224[0](gaia.cu7.algo.character.periodsearch.methods.test.MethodLeastSquareTest)
java.lang.AssertionError: expected:<6.461484349> but was:<6.461299998894796>
        at junit@4.13.1/org.junit.Assert.fail(Assert.java:89)
        at junit@4.13.1/org.junit.Assert.failNotEquals(Assert.java:835)
        at junit@4.13.1/org.junit.Assert.assertEquals(Assert.java:555)
        at junit@4.13.1/org.junit.Assert.assertEquals(Assert.java:685)
        at gaia.cu7.algo.character.periodsearch.methods.test.MethodLeastSquareTest.testGPUGaiaSource4660664932119220224(MethodLeastSquareTest.java:390)

FAILURES!!!

The failed test is the one that calling computeGPU method, so somehow it works but with relatively big deviation from vanila jdk17 code as a result.

How To Reproduce running a junit test using bare java cmd (not all jars are needed for the test but are needed by our stack):

java -cp build:lib/compile/AGISDm-17.1.0.jar:lib/compile/AGISLab-17.1.0.jar:lib/compile/AGISTools-17.1.0.jar:lib/compile/GaiaMdbDm-20.0.18.jar:lib/compile/GaiaParameters-21.1.0.jar:lib/compile/GaiaTools-20.6.1.jar:lib/compile/GaiaToolsDm-21.3.0.jar:lib/compile/HikariCP-3.4.5.jar:lib/compile/Taglets-1.0.jar:lib/compile/VariConfiguration-SB-22.0.0-r734000-20211123155220.jar:lib/compile/VariFramework-SB-22.0.0-r734040M-20211124090454.jar:lib/compile/VariObjectModel-SB-22.0.0-r733233M-20211123174628.jar:lib/compile/VariStatistics-SB-22.0.0-r728093M-20211124091035.jar:lib/compile/activemq-broker-5.14.5.jar:lib/compile/activemq-client-5.14.5.jar:lib/compile/activemq-http-5.14.5.jar:lib/compile/activemq-jms-pool-5.14.5.jar:lib/compile/activemq-mqtt-5.14.5.jar:lib/compile/activemq-openwire-legacy-5.14.5.jar:lib/compile/activemq-pool-5.14.5.jar:lib/compile/activemq-spring-5.14.5.jar:lib/compile/activemq-stomp-5.14.5.jar:lib/compile/annotations-13.0.jar:lib/compile/aopalliance-1.0.jar:lib/compile/aspectjrt-1.9.2.jar:lib/compile/aspectjtools-1.9.2.jar:lib/compile/aspectjweaver-1.9.6.jar:lib/compile/assertj-core-3.18.1.jar:lib/compile/atomikos-util-3.9.3.jar:lib/compile/byte-buddy-1.10.17.jar:lib/compile/byte-buddy-agent-1.10.5.jar:lib/compile/cache-api-1.0.0.jar:lib/compile/caffeine-2.8.8.jar:lib/compile/camel-api-3.7.2.jar:lib/compile/camel-base-3.7.2.jar:lib/compile/camel-base-engine-3.7.2.jar:lib/compile/camel-bean-3.7.2.jar:lib/compile/camel-browse-3.7.2.jar:lib/compile/camel-caffeine-lrucache-3.7.2.jar:lib/compile/camel-cloud-3.7.2.jar:lib/compile/camel-cluster-3.7.2.jar:lib/compile/camel-controlbus-3.7.2.jar:lib/compile/camel-core-3.7.2.jar:lib/compile/camel-core-catalog-3.7.2.jar:lib/compile/camel-core-engine-3.7.2.jar:lib/compile/camel-core-languages-3.7.2.jar:lib/compile/camel-core-model-3.7.2.jar:lib/compile/camel-core-processor-3.7.2.jar:lib/compile/camel-core-reifier-3.7.2.jar:lib/compile/camel-core-starter-3.7.2.jar:lib/compile/camel-core-xml-3.7.2.jar:lib/compile/camel-dataformat-3.7.2.jar:lib/compile/camel-dataset-3.7.2.jar:lib/compile/camel-direct-3.7.2.jar:lib/compile/camel-directvm-3.7.2.jar:lib/compile/camel-file-3.7.2.jar:lib/compile/camel-health-3.7.2.jar:lib/compile/camel-jms-3.7.2.jar:lib/compile/camel-language-3.7.2.jar:lib/compile/camel-log-3.7.2.jar:lib/compile/camel-main-3.7.2.jar:lib/compile/camel-management-api-3.7.2.jar:lib/compile/camel-metrics-3.7.2.jar:lib/compile/camel-mock-3.7.2.jar:lib/compile/camel-ref-3.7.2.jar:lib/compile/camel-rest-3.7.2.jar:lib/compile/camel-saga-3.7.2.jar:lib/compile/camel-scheduler-3.7.2.jar:lib/compile/camel-seda-3.7.2.jar:lib/compile/camel-spring-3.7.2.jar:lib/compile/camel-spring-boot-3.7.2.jar:lib/compile/camel-spring-boot-starter-3.7.2.jar:lib/compile/camel-stub-3.7.2.jar:lib/compile/camel-support-3.7.2.jar:lib/compile/camel-test-3.7.2.jar:lib/compile/camel-test-spring-3.7.2.jar:lib/compile/camel-timer-3.7.2.jar:lib/compile/camel-tooling-model-3.7.2.jar:lib/compile/camel-util-3.7.2.jar:lib/compile/camel-util-json-3.7.2.jar:lib/compile/camel-validator-3.7.2.jar:lib/compile/camel-vm-3.7.2.jar:lib/compile/camel-xml-jaxb-3.7.2.jar:lib/compile/camel-xml-jaxp-3.7.2.jar:lib/compile/camel-xpath-3.7.2.jar:lib/compile/camel-xslt-3.7.2.jar:lib/compile/checker-qual-3.5.0.jar:lib/compile/classmate-1.5.1.jar:lib/compile/cloning-1.9.12.jar:lib/compile/common-3.6.jar:lib/compile/commons-beanutils-1.9.3.jar:lib/compile/commons-codec-1.9.jar:lib/compile/commons-collections-3.2.2.jar:lib/compile/commons-collections4-4.4.jar:lib/compile/commons-compress-1.19.jar:lib/compile/commons-configuration-1.7.jar:lib/compile/commons-dbcp-1.4.jar:lib/compile/commons-digester-1.8.1.jar:lib/compile/commons-io-2.6.jar:lib/compile/commons-lang-2.6.jar:lib/compile/commons-lang3-3.9.jar:lib/compile/commons-logging-1.2.jar:lib/compile/commons-math3-3.6.1.jar:lib/compile/commons-net-3.5.jar:lib/compile/commons-pool-1.6.jar:lib/compile/commons-pool2-2.4.2.jar:lib/compile/commons-rng-client-api-1.3.jar:lib/compile/commons-rng-core-1.3.jar:lib/compile/commons-rng-sampling-1.3.jar:lib/compile/commons-rng-simple-1.3.jar:lib/compile/disruptor-3.4.2.jar:lib/compile/ejb-api-3.0-alpha-1.jar:lib/compile/error_prone_annotations-2.3.4.jar:lib/compile/failureaccess-1.0.1.jar:lib/compile/flanagan-1.0.jar:lib/compile/freehep-io-2.0.5.jar:lib/compile/fst-2.57.jar:lib/compile/geojson-jackson-1.5.1.jar:lib/compile/geronimo-j2ee-management_1.1_spec-1.0.1.jar:lib/compile/geronimo-jms_1.1_spec-1.1.1.jar:lib/compile/geronimo-jms_2.0_spec-1.0-alpha-2.jar:lib/compile/geronimo-jta_1.0.1B_spec-1.0.1.jar:lib/compile/groovy-4.0.0-beta-1.jar:lib/compile/groovy-jsr223-4.0.0-beta-1.jar:lib/compile/gson-2.5.jar:lib/compile/guava-30.1-jre.jar:lib/compile/guice-5.0.1.jar:lib/compile/hamcrest-2.2.jar:lib/compile/hamcrest-all-1.3.jar:lib/compile/hamcrest-core-1.3.jar:lib/compile/hamcrest-library-1.3.jar:lib/compile/hawtbuf-1.11.jar:lib/compile/hawtdispatch-1.22.jar:lib/compile/hawtdispatch-transport-1.22.jar:lib/compile/hibernate-commons-annotations-5.1.2.Final.jar:lib/compile/hibernate-core-5.4.27.Final.jar:lib/compile/htmIndex-3.0.2.jar:lib/compile/httpclient-4.5.2.jar:lib/compile/httpcore-4.4.5.jar:lib/compile/ignite-core-2.7.0.jar:lib/compile/ignite-shmem-1.0.0.jar:lib/compile/interval-tree-1.0.0.jar:lib/compile/istack-commons-runtime-4.0.0.jar:lib/compile/itext-2.0.1.jar:lib/compile/j2objc-annotations-1.3.jar:lib/compile/j3d-core-1.3.1.jar:lib/compile/j3d-core-utils-1.3.1.jar:lib/compile/jackson-annotations-2.13.0.jar:lib/compile/jackson-core-2.13.0.jar:lib/compile/jackson-databind-2.13.0.jar:lib/compile/jakarta.activation-2.0.0.jar:lib/compile/jakarta.annotation-api-1.3.5.jar:lib/compile/jakarta.persistence-api-2.2.3.jar:lib/compile/jakarta.transaction-api-1.3.3.jar:lib/compile/jakarta.xml.bind-api-3.0.0.jar:lib/compile/jama-1.0.3.jar:lib/compile/jandex-2.1.3.Final.jar:lib/compile/javaparser-1.0.11.jar:lib/compile/javassist-3.27.0-GA.jar:lib/compile/javax.activation-1.2.0.jar:lib/compile/javax.activation-api-1.2.0.jar:lib/compile/javax.inject-1.jar:lib/compile/javax.persistence-2.1.0.jar:lib/compile/javax.servlet-api-4.0.1.jar:lib/compile/jaxb-api-2.1.9.jar:lib/compile/jaxb-api-2.3.1.jar:lib/compile/jaxb-core-2.3.0.1.jar:lib/compile/jaxb-core-3.0.0.jar:lib/compile/jaxb-impl-2.4.0-b180830.0438.jar:lib/compile/jaxb-runtime-3.0.0.jar:lib/compile/jaxb2-basics-0.12.0.jar:lib/compile/jaxb2-basics-ant-0.12.0.jar:lib/compile/jaxb2-basics-runtime-0.12.0.jar:lib/compile/jaxb2-basics-tools-0.12.0.jar:lib/compile/jaxb2-default-value-1.1.jar:lib/compile/jaxb2-value-constructor-3.0.jar:lib/compile/jaxen-1.0-FCS.jar:lib/compile/jaxrpc-api-1.1.jar:lib/compile/jboss-serialization-4.2.2.GA.jar:lib/compile/jcl-over-slf4j-1.7.7.jar:lib/compile/jcommon-1.0.23latex.jar:lib/compile/jdom-1.0.jar:lib/compile/jetty-all-9.2.13.v20150730.jar:lib/compile/jfreechart-1.5.0.jar:lib/compile/jfreechartbinding-0.0.6.jar:lib/compile/jhealpix-3.2.0.jar:lib/compile/jmathtex-0.7pre.jar:lib/compile/jolokia-jvm-agent-1.6.2.jar:lib/compile/jsap-2.1.jar:lib/compile/jsr305-3.0.1.jar:lib/compile/junit-4.13.1.jar:lib/compile/junit-addons-1.4.jar:lib/compile/krasa-jaxb-tools-1.4.jar:lib/compile/kryo-5.1.1.jar:lib/compile/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:lib/compile/log4j-api-2.12.1.jar:lib/compile/log4j-core-2.12.1.jar:lib/compile/log4j-slf4j-impl-2.12.1.jar:lib/compile/log4j2-logstash-layout-1.0.2.jar:lib/compile/lombok-1.18.20.jar:lib/compile/lz4-1.3.0.jar:lib/compile/lz4-java-1.4.0.jar:lib/compile/management-api-1.1-rev-1.jar:lib/compile/metrics-core-4.1.12.1.jar:lib/compile/metrics-jmx-4.1.12.1.jar:lib/compile/metrics-json-4.1.12.1.jar:lib/compile/minlog-1.3.1.jar:lib/compile/mockito-core-3.2.4.jar:lib/compile/mvel2-2.4.12.Final.jar:lib/compile/net-ivoa-fits-0.1.jar:lib/compile/objenesis-3.2.jar:lib/compile/ognl-2.6.9.jar:lib/compile/openjpa-all-3.2.3-CU7.jar:lib/compile/org.apache.bval.bundle-1.1.2.jar:lib/compile/postgresql-42.2.12.jre7.jar:lib/compile/preferences-3.6.jar:lib/compile/reflectasm-1.11.9.jar:lib/compile/rxjava-1.2.0.jar:lib/compile/saxpath-1.0-FCS.jar:lib/compile/simple-5.1.6.jar:lib/compile/slf4j-api-1.7.30.jar:lib/compile/snakeyaml-1.27.jar:lib/compile/spring-aop-5.3.3.jar:lib/compile/spring-aspects-5.3.3.jar:lib/compile/spring-beans-5.3.3.jar:lib/compile/spring-boot-2.4.2.jar:lib/compile/spring-boot-autoconfigure-2.4.2.jar:lib/compile/spring-boot-starter-2.4.2.jar:lib/compile/spring-boot-starter-aop-2.4.2.jar:lib/compile/spring-boot-starter-data-jpa-2.4.2.jar:lib/compile/spring-boot-starter-jdbc-2.4.2.jar:lib/compile/spring-context-5.3.3.jar:lib/compile/spring-core-5.3.3.jar:lib/compile/spring-data-commons-2.4.3.jar:lib/compile/spring-data-jpa-2.4.3.jar:lib/compile/spring-expression-5.3.3.jar:lib/compile/spring-jcl-5.3.3.jar:lib/compile/spring-jdbc-5.3.3.jar:lib/compile/spring-jms-5.3.3.jar:lib/compile/spring-messaging-5.3.3.jar:lib/compile/spring-orm-5.3.3.jar:lib/compile/spring-test-5.3.3.jar:lib/compile/spring-tx-5.3.3.jar:lib/compile/stringtemplate-3.2.1.jar:lib/compile/text-3.5.jar:lib/compile/tornado-api-0.12.jar:lib/compile/tornado-matrices-0.12.jar:lib/compile/transaction-api-1.1.jar:lib/compile/transactions-3.9.3.jar:lib/compile/transactions-api-3.9.3.jar:lib/compile/transactions-jdbc-3.9.3.jar:lib/compile/transactions-jta-3.9.3.jar:lib/compile/txw2-3.0.0.jar:lib/compile/unitils-core-3.4.6.jar:lib/compile/validation-api-1.0.0.GA.jar:lib/compile/vecmath-1.3.1.jar:lib/compile/xbean-spring-4.2.jar:lib/compile/xmlpull-1.1.3.1.jar:lib/compile/xmlunit-1.4.jar:lib/compile/xpp3_min-1.1.4c.jar:lib/compile/xstream-1.4.11.1.jar:lib/compile/xz-1.6.jar:lib/compile/zstd-jni-1.4.4-7.jar:$CU7COMMON/conf:$SOFCOMMON/apache-ant-1.10.5/lib/ant-launcher.jar:$SOFCOMMON/apache-ant-1.10.5/lib/ant.jar:$SOFCOMMON/apache-ant-1.10.5/lib/ant-junit.jar:$SOFCOMMON/apache-ant-1.10.5/lib/ant-junit4.jar -server -XX:-UseCompressedOops -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djava.library.path=/d00/local/tornado/tornadovm_fresh/bin/sdk/lib --module-path .:/d00/local/tornado/tornadovm_fresh/bin/sdk/share/java/tornado  -Dtornado.load.api.implementation=uk.ac.manchester.tornado.runtime.tasks.TornadoTaskSchedule -Dtornado.load.runtime.implementation=uk.ac.manchester.tornado.runtime.TornadoCoreRuntime -Dtornado.load.tornado.implementation=uk.ac.manchester.tornado.runtime.common.Tornado -Dtornado.load.device.implementation.opencl=uk.ac.manchester.tornado.drivers.opencl.runtime.OCLDeviceFactory -Dtornado.load.device.implementation.ptx=uk.ac.manchester.tornado.drivers.ptx.runtime.PTXDeviceFactory -Dtornado.load.device.implementation.spirv=uk.ac.manchester.tornado.drivers.spirv.runtime.SPIRVDeviceFactory -Dtornado.load.annotation.implementation=uk.ac.manchester.tornado.annotation.ASMClassVisitor -Dtornado.load.annotation.parallel=uk.ac.manchester.tornado.api.annotations.Parallel   -XX:+UseParallelGC @/d00/local/tornado/tornadovm_fresh/bin/sdk/etc/exportLists/common-exports  --upgrade-module-path /d00/local/tornado/tornadovm_fresh/bin/sdk/share/java/graalJars  @/d00/local/tornado/tornadovm_fresh/bin/sdk/etc/exportLists/opencl-exports --add-modules ALL-SYSTEM,tornado.runtime,tornado.annotation,tornado.drivers.common,tornado.drivers.opencl,org.apache.logging.log4j -DPeriodSearch.t0.device=0:1  -Dtornado.debug=True -Dtornado.print.kernel=True org.junit.runner.JUnitCore gaia.cu7.algo.character.periodsearch.methods.test.MethodLeastSquareTest

Expected behavior

Tornadovm not complaining about jdk version mismatch, test running using a generated kernel (does not seem the case here).

A clear and concise description of what you expected to happen.

Computing system setup (please complete the following information):

Number of Tornado drivers: 1 Driver: OpenCL Total number of OpenCL devices : 2 Tornado device=0:0 OpenCL -- [Intel(R) CPU Runtime for OpenCL(TM) Applications] -- Intel(R) Xeon(R) CPU E3-1585L v5 @ 3.00GHz Global Memory Size: 62.8 GB Local Memory Size: 32.0 KB Workgroup Dimensions: 3 Total Number of Block Threads: 8192 Max WorkGroup Configuration: [8192, 8192, 8192] Device OpenCL C version: OpenCL C 2.0

Tornado device=0:1 OpenCL -- [Intel(R) OpenCL HD Graphics] -- Intel(R) Iris(TM) Pro Graphics P580 [0x193a] Global Memory Size: 50.2 GB Local Memory Size: 64.0 KB Workgroup Dimensions: 3 Total Number of Block Threads: 256 Max WorkGroup Configuration: [256, 256, 256] Device OpenCL C version: OpenCL C 3.0


 - TornadoVM dev-0.13

**Additional context**
If applicable, Add any other context about the problem here.
yazun commented 2 years ago

Actually the assertion failure is correct as we lowered accuracy for the sake of the test (so jvm properly executes vanilla java code).

jjfumero commented 2 years ago

Thank you @yazun for the report.

Can you confirm that the newest version works for you?

https://mvnrepository.com/artifact/org.ow2.asm/asm/9.2

The dependency is located here: https://github.com/beehive-lab/TornadoVM/blob/c7893f594cb4710a93495b279aa393845ff47991/tornado-annotation/pom.xml#L44

If it works for you, please, feel free to open a PR with this change.

jjfumero commented 2 years ago

Update: ok I just saw the connection with #153 . Could you please open a PR with this change?

All PRs are submitted to the develop branch.

yazun commented 2 years ago

Sorry, Just realized I created merge request with master, will redo with develop branch.

jjfumero commented 2 years ago

Dont worry, I can edit it.