beehive-lab / TornadoVM

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

Execution with Graal 22.0.1 fails #406

Open jjfumero opened 2 months ago

jjfumero commented 2 months ago

Describe the bug

The build is ok, but when it runs, it prints the following error:

make tests
rm -f tornado_unittests.log
tornado --devices
WARNING: Using incubator modules: jdk.incubator.vector

Number of Tornado drivers: 1
Driver: OpenCL
  Total number of OpenCL devices  : 2
  Tornado device=0:0  (DEFAULT)
    OPENCL --  [NVIDIA CUDA] -- NVIDIA GeForce RTX 3070
        Global Memory Size: 7.8 GB
        Local Memory Size: 48.0 KB
        Workgroup Dimensions: 3
        Total Number of Block Threads: [1024]
        Max WorkGroup Configuration: [1024, 1024, 64]
        Device OpenCL C version: OpenCL C 1.2

  Tornado device=0:1
    OPENCL --  [Intel(R) OpenCL HD Graphics] -- Intel(R) UHD Graphics 770
        Global Memory Size: 24.9 GB
        Local Memory Size: 64.0 KB
        Workgroup Dimensions: 3
        Total Number of Block Threads: [512]
        Max WorkGroup Configuration: [512, 512, 512]
        Device OpenCL C version: OpenCL C 1.2

tornado-test --ea --verbose
tornado -ea  --jvm "-Xmx6g -Dtornado.recover.bailout=False -Dtornado.unittests.verbose=True "  -m  tornado.unittests/uk.ac.manchester.tornado.unittests.tools.TornadoTestRunner  --params "uk.ac.manchester.tornado.unittests.foundation.TestIntegers"
WARNING: Using incubator modules: jdk.incubator.vector

WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
WARNING: Code Bailout to Java sequential. Use --debug to see the reason
Test: class uk.ac.manchester.tornado.unittests.foundation.TestIntegers
    Running test: test01                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: copyTestZero(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test02                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: copyTest(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test03                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: copyTest2(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test04                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: compute(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test05                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: init(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test06                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: init(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    Running test: test07                     ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: init(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
Test ran: 7, Failed: 7, Unsupported: 0

Cause:

est: class uk.ac.manchester.tornado.unittests.foundation.TestShorts
    Running test: testShortAdd               ................  [FAILED] 
        \_[REASON] Unable to build sketch for method: vectorSumShortCompute(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    uk.ac.manchester.tornado.api.exceptions.TornadoBailoutRuntimeException: Unable to build sketch for method: vectorSumShortCompute(Cannot invoke "jdk.vm.ci.meta.ResolvedJavaType.getAnnotation(java.lang.Class)" because the return value of "jdk.graal.compiler.core.common.type.ObjectStamp.type()" is null)
    at tornado.runtime@1.0.3-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher.buildSketch(TornadoSketcher.java:190)
    at tornado.runtime@1.0.3-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:262)
    at tornado.runtime@1.0.3-dev/uk.ac.manchester.tornado.runtime.sketcher.TornadoSketcher$TornadoSketcherCallable.call(TornadoSketcher.java:252)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1570)

How To Reproduce

In the jdk22 branch:

make 
make tests

Computing system setup (please complete the following information):

Additional context

n/ a.

mikepapadim commented 2 months ago

Thanks @jjfumero, I will get into this issue