Okra loader needs to check OS support

Deneau, Tom tom.deneau at amd.com
Sat Jan 25 11:30:57 PST 2014


Oh, never mind, I see later in your mail
the change you are checking in to correct this...

-- Tom


> -----Original Message-----
> From: graal-dev-bounces at openjdk.java.net [mailto:graal-dev-
> bounces at openjdk.java.net] On Behalf Of Deneau, Tom
> Sent: Saturday, January 25, 2014 1:29 PM
> To: Doug Simon
> Cc: Caspole, Eric; graal-dev at openjdk.java.net
> Subject: RE: Okra loader needs to check OS support
> 
> Doug --
> 
> My experience is that the hsail junits don't run unless GPUOffload is
> also on but I haven't looked into it to understand why.  Maybe Eric
> Caspole who first noticed this on our side can comment.
> 
> -- Tom
> 
> 
> > -----Original Message-----
> > From: Doug Simon [mailto:doug.simon at oracle.com]
> > Sent: Saturday, January 25, 2014 12:51 PM
> > To: Deneau, Tom
> > Cc: graal-dev at openjdk.java.net
> > Subject: Re: Okra loader needs to check OS support
> >
> > Once I've made the C++ changes to allow multiple, co-existing GPU
> > backends, we will make the mx unittest command enable
> > UseHSAILSimulator if the okra-<version>-wth-sim.jar declared in
> > mx/projects exists locally.
> >
> > The -XX:+GPUOffload should no affect running HSAIL unit tests[1].
> >
> > -Doug
> >
> > [1] http://hg.openjdk.java.net/graal/graal/rev/ac1e626432f9
> >
> > On Jan 25, 2014, at 7:32 PM, Deneau, Tom <tom.deneau at amd.com> wrote:
> >
> > > Doug --
> > >
> > > OK, The new 1.6 jar files are up there now.
> > >
> > > One other related thought on junit tests...
> > > For the hsail junit tests to run the Hotspot flags
> > > -XX:+UseHSAILSimulatr and the recently added -XX:+GPUOffload need to
> > > be set.  If these were graal flags we could cover them with scoped
> > options but...
> > >
> > > Should we design some sort of CompilerToVM or CompilerToGPU call
> > > that would allow a junit test to adjust certain Hotspot Global flags
> > > for
> > the length of the test?
> > > Or will your gate procedures specify the necessary Hotspot flags?
> > >
> > > -- Tom
> > >
> > >
> > >> -----Original Message-----
> > >> From: Doug Simon [mailto:doug.simon at oracle.com]
> > >> Sent: Saturday, January 25, 2014 2:08 AM
> > >> To: Deneau, Tom
> > >> Subject: Re: Okra loader needs to check OS support
> > >>
> > >> No. If you just upload the new jars and let me know, I will make
> > >> the projects file change and push it.
> > >>
> > >> Sent from my iPhone
> > >>
> > >>> On Jan 25, 2014, at 1:22 AM, "Deneau, Tom" <tom.deneau at amd.com>
> > wrote:
> > >>>
> > >>> Doug --
> > >>>
> > >>> Do you want an actual webrev for the projects file change?
> > >>>
> > >>> -- Tom
> > >>>
> > >>>> -----Original Message-----
> > >>>> From: Doug Simon [mailto:doug.simon at oracle.com]
> > >>>> Sent: Friday, January 24, 2014 6:10 PM
> > >>>> To: Deneau, Tom
> > >>>> Cc: graal-dev at openjdk.java.net
> > >>>> Subject: Re: Okra loader needs to check OS support
> > >>>>
> > >>>> Unfortunately, you need to update the version number (and hence
> > >>>> the
> > >> jar
> > >>>> files and projects file) for this kind of change as mx does not
> > >>>> do a time stamp or file size check on downloaded libs. The only
> > >> alternative
> > >>>> is to use this list to tell everyone to delete the out of date
> > >>>> jar files.
> > >>>>
> > >>>> Sent from my iPhone
> > >>>>
> > >>>>>> On Jan 24, 2014, at 10:42 PM, "Deneau, Tom"
> > >>>>>> <tom.deneau at amd.com>
> > >>>>> wrote:
> > >>>>>
> > >>>>> Doug --
> > >>>>>
> > >>>>> OK new jar files with this fix should be up there now.
> > >>>>> I didn't change the version number so mx/projects doesn't need
> > >>>>> to
> > >>>> change.
> > >>>>>
> > >>>>> -- Tom
> > >>>>>
> > >>>>>
> > >>>>>> -----Original Message-----
> > >>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
> > >>>>>> Sent: Friday, January 24, 2014 3:27 PM
> > >>>>>> To: Deneau, Tom
> > >>>>>> Cc: graal-dev at openjdk.java.net
> > >>>>>> Subject: Re: Okra loader needs to check OS support
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> Sent from my iPhone
> > >>>>>>
> > >>>>>>> On Jan 24, 2014, at 8:21 PM, "Deneau, Tom"
> > >>>>>>> <tom.deneau at amd.com>
> > >>>> wrote:
> > >>>>>>>
> > >>>>>>> Doug --
> > >>>>>>>
> > >>>>>>> I'll get out an update today. I didn't know this was a gate
> > >>>>>> environment.
> > >>>>>>> As you know, the hsail simulator itself has never been ported
> > >>>>>>> to
> > >>>> Mac.
> > >>>>>>>
> > >>>>>>> So on a Mac you want this to work the way things used to work
> > >>>>>>> on
> > >>>>>> linux,
> > >>>>>>> basically skipping all the hsail tests, is that correct?
> > >>>>>>
> > >>>>>> Yes, that would be great.
> > >>>>>>
> > >>>>>>>
> > >>>>>>>> -----Original Message-----
> > >>>>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
> > >>>>>>>> Sent: Friday, January 24, 2014 12:27 PM
> > >>>>>>>> To: Deneau, Tom
> > >>>>>>>> Cc: graal-dev at openjdk.java.net
> > >>>>>>>> Subject: Okra loader needs to check OS support
> > >>>>>>>>
> > >>>>>>>> Hi Tom,
> > >>>>>>>>
> > >>>>>>>> The new Okra library loading mechanism breaks the unit tests
> > >>>>>>>> on a
> > >>>>>> Mac:
> > >>>>>>>>
> > >>>>>>>> $ mx --vm server unittest LongNegTest JUnit version 4.8 .E
> > >>>>>>>> Time: 2.377
> > >>>>>>>> There was 1 failure:
> > >>>>>>>> 1) test(com.oracle.graal.compiler.hsail.test.LongNegTest)
> > >>>>>>>> java.lang.ExceptionInInitializerError
> > >>>>>>>> at com.amd.okra.OkraUtil.testOkraLibExists(OkraUtil.java:61)
> > >>>>>>>> at com.amd.okra.OkraUtil.<clinit>(OkraUtil.java:51)
> > >>>>>>>> at
> > >>>>>>
> > >> com.oracle.graal.compiler.hsail.test.infra.KernelTester.<init>(Kern
> > >> el
> > >>>>>> Tes
> > >>>>>>>> ter.java:118)
> > >>>>>>>> at
> > >>>>>>
> > >> com.oracle.graal.compiler.hsail.test.infra.GraalKernelTester.<init>
> > >> (G
> > >>>>>> raa
> > >>>>>>>> lKernelTester.java:45)
> > >>>>>>>> at
> > >>>>>>
> > >> com.oracle.graal.compiler.hsail.test.LongNegTest.<init>(LongNegTest
> > >> .j
> > >>>>>> ava
> > >>>>>>>> :32)
> > >>>>>>>> at
> > >>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > >>>>>>>> Method)
> > >>>>>>>> at
> > >>>>>>
> > >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstru
> > >> ct
> > >>>>>> orA
> > >>>>>>>> ccessorImpl.java:62)
> > >>>>>>>> at
> > >>>>>>
> > >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delegatin
> > >> gC
> > >>>>>> ons
> > >>>>>>>> tructorAccessorImpl.java:45)
> > >>>>>>>> at
> > >>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:40
> > >>>>>>>> 8)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4Clas
> > >> sR
> > >>>>>> unn
> > >>>>>>>> er.java:202)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJ
> > >> Un
> > >>>>>> it4
> > >>>>>>>> ClassRunner.java:251)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveC
> > >> al
> > >>>>>> lab
> > >>>>>>>> le.java:15)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4Cla
> > >> ss
> > >>>>>> Run
> > >>>>>>>> ner.java:248)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassR
> > >> un
> > >>>>>> ner
> > >>>>>>>> .java:76)
> > >>>>>>>> at
> > >>>>>>
> > >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassR
> > >> un
> > >>>>>> ner
> > >>>>>>>> .java:50)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:5
> > >>>>>>>> 2)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:
> > >>>>>>>> 19
> > >>>>>>>> 1)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:4
> > >>>>>>>> 2)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:1
> > >>>>>>>> 84
> > >>>>>>>> ) at
> > >>>>>>>> org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> > >>>>>>>> at org.junit.runners.Suite.runChild(Suite.java:128)
> > >>>>>>>> at org.junit.runners.Suite.runChild(Suite.java:24)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:5
> > >>>>>>>> 2)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:
> > >>>>>>>> 19
> > >>>>>>>> 1)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner.access$000(ParentRunner.java:4
> > >>>>>>>> 2)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:1
> > >>>>>>>> 84
> > >>>>>>>> ) at
> > >>>>>>>> org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> > >>>>>>>> at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> > >>>>>>>> at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
> > >>>>>>>> at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
> > >>>>>>>> at org.junit.runner.JUnitCore.runMain(JUnitCore.java:98)
> > >>>>>>>> at
> > >>>>>>>> org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
> > >>>>>>>> at org.junit.runner.JUnitCore.main(JUnitCore.java:45)
> > >>>>>>>> Caused by: java.lang.RuntimeException: unable to load
> > >>>>>>>> libokra_x86_64.dylib, java.lang.UnsatisfiedLinkError: Can't
> > >>>>>>>> load
> > >>>>>>>> library:
> > >>>>>>
> > >> /var/folders/d_/fn0kjn111nsc60w4vfy38fgr0026wn/T/okraresource.dir_6
> > >> 56
> > >>>>>> 902
> > >>>>>>>> 6372617119677/libokra_x86_64.dylib
> > >>>>>>>> at
> > >>>> com.amd.okra.OkraContext.loadOkraNativeLibrary(OkraContext.java:1
> > >>>> 40
> > >>>> )
> > >>>>>>>> at com.amd.okra.OkraContext.<clinit>(OkraContext.java:69)
> > >>>>>>>> ... 35 more
> > >>>>>>>>
> > >>>>>>>> FAILURES!!!
> > >>>>>>>> Tests run: 1,  Failures: 1
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> Can you please fix
> > >> com.amd.okra.OkraContext.loadOkraNativeLibrary()
> > >>>>>> so
> > >>>>>>>> that it only tries to load the library if on Linux.
> > >>>>>>>>
> > >>>>>>>> This will require an update to the Okra jar files.
> > >>>>>>>>
> > >>>>>>>> -Doug
> > >>>
> > >>>
> > >
> > >
> >
> 
> 




More information about the graal-dev mailing list