hsail gate commands -- webrev

Gilles Duboscq duboscq at ssw.jku.at
Thu Jan 23 13:02:18 PST 2014


Sorry, i meant to add a bit more context and then forgot about it
while writing the previous e-mail.
I was using "mx -v --vm server unittest -XX:+TraceGPUInteraction
-XX:+UseHSAILSimulator -verbose:jni -verbose:class
-Dokra.simloader.verbose=true IntAbsTest" and getting an
UnsatisfiedLinkError.

You can see in jdk code: j.l.ClassLoader.findNative(ClassLoader,
String) is checking whether we are in the system class loader, and
then either uses j.l.ClassLoader.nativeLibraries or
j.l.ClassLoader.systemNativeLibraries.

-Gilles


On Thu, Jan 23, 2014 at 9:42 PM, Tom Deneau <tom.deneau at amd.com> wrote:
> Gilles --
>
> Sorry, I do see the UnsatisfiedLinkError now.
> I guess it turns out we were using most of the functionality
> of the native library thru os:dll_lookup in hotspot itself
> rather than thru JNI linkages, so that LinkError was not noticed.
>
> Would still be interested in the mx command line that showed the problem for you.
>
> -- 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: Thursday, January 23, 2014 2:01 PM
>> To: Gilles Duboscq
>> Cc: graal-dev at openjdk.java.net
>> Subject: RE: hsail gate commands -- webrev
>>
>> Gilles --
>>
>> Are you saying when hotspot runs os::Linux::dll_lookup on behalf of
>> OkraContext, that it will only look in libraries loaded by the
>> bootclasspath classes?
>>
>> I'm not seeing any problem when I run here.
>> I have nothing in the PATH or LD_LIBRARY_PATH or ldconfig cache and I
>> see OkraSimLoader creating the temporary directory and loading the
>> library from there.
>>
>> Can you send me the mx command line that showed the problem for you?
>>
>> -- Tom
>>
>>
>> > -----Original Message-----
>> > From: gilwooden at gmail.com [mailto:gilwooden at gmail.com] On Behalf Of
>> > Gilles Duboscq
>> > Sent: Thursday, January 23, 2014 1:13 PM
>> > To: Deneau, Tom
>> > Cc: Doug Simon; graal-dev at openjdk.java.net
>> > Subject: Re: hsail gate commands -- webrev
>> >
>> > Tom,
>> >
>> > This last version doesn't work for me when running unit tests:
>> > The content of okra-1.5.jar is being copied inside graal.jar which
>> > means that OkraContext is on the boot classpath but
>> > okra-1.5-with-sim.jar (and so OkraSimLoader) is only on the classpath.
>> > This means that when hotspot tries to link the native methods in
>> > OkraContext it looks inside the libraries loaded for the system class
>> > loader while OkraSimLoader registered its library with the
>> > application's classloader.
>> >
>> > We could append okra-1.5-with-sim.jar to the bootclasspath but i'm not
>> > so sure about mx support for this. Doug, what do you think?
>> >
>> > -Gilles
>> >
>> > On Thu, Jan 23, 2014 at 1:02 AM, Tom Deneau <tom.deneau at amd.com>
>> wrote:
>> > > Doug --
>> > >
>> > > OK, there is now a v2 webrev supporting the changes we talked about
>> > > http://cr.openjdk.java.net/~tdeneau/graal-webrevs/webrev-lazy-native
>> > > -h sail-library-open-v2/webrev/ (ignore the HSAILCompilationResult
>> > > being listed, a webrev quirk)
>> > >
>> > > and 3 new .jar files with the okra side changes...
>> > >
>> > > Now only the regular okra class files go into graal.jar.
>> > > The special functionality is in a separate OkraSimLoader class and
>> > > that class and the resources appear in the okra-1.5.-with-sim.jar
>> > >
>> > > And there is a separate jar file for okra sources.
>> > >
>> > > -- Tom
>> > >
>> > >
>> > >
>> > >> -----Original Message-----
>> > >> From: Deneau, Tom
>> > >> Sent: Wednesday, January 22, 2014 1:19 PM
>> > >> To: 'Doug Simon'
>> > >> Cc: Tom Rodriguez; graal-dev at openjdk.java.net
>> > >> Subject: RE: hsail gate commands -- webrev
>> > >>
>> > >> Doug --
>> > >>
>> > >> There is a newer .jar file (same name) up on cr.openjdk.java.net
>> > >> now that includes the changes you asked for
>> > >>    * includes the sources
>> > >>    * deletes the temporary .hsail and .o files
>> > >>
>> > >> Can you make the okraLibExists() change which you mention below
>> > >> without a new webrev?
>> > >>
>> > >> -- Tom
>> > >>
>> > >>
>> > >> > -----Original Message-----
>> > >> > From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > Sent: Wednesday, January 22, 2014 5:58 AM
>> > >> > To: Deneau, Tom
>> > >> > Cc: Tom Rodriguez; graal-dev at openjdk.java.net
>> > >> > Subject: Re: hsail gate commands -- webrev
>> > >> >
>> > >> > This all seems to work - nice job. Just a few requests/comments
>> > >> > before I integrate.
>> > >> >
>> > >> > HSAILCompilationResult.java:
>> > >> >
>> > >> >   60     // this test of okraLib existence is to allow the
>> loading
>> > of
>> > >> > the
>> > >> >   61     // native library from the jar file if it is not already
>> > on
>> > >> the
>> > >> > path
>> > >> >   62     private static boolean okraLibExists =
>> > >> > OkraUtil.okraLibExists();
>> > >> >
>> > >> > The above assignment produces a "value of field is not used"
>> > >> > warning in Eclipse. It seems that all you want here is the
>> > >> > side-effect of the call to OkraUtil.okraLibExists(). If that's
>> > >> > the case, just put the call in a static initializer block and
>> > >> > delete
>> > the field:
>> > >> >
>> > >> > static {
>> > >> >     OkraUtil.okraLibExists();
>> > >> > }
>> > >> >
>> > >> > However, I tried just commenting out the line altogether and the
>> > >> > unit tests seemed to still run fine. Which begs the question, do
>> > >> > you really need this here?
>> > >> >
>> > >> > Can you also please update (and re-upload) okra-with-sim.jar to
>> > >> > include the Java sources (just like okra-1.2.jar had). This helps
>> > >> > with debugging the code in Eclipse.
>> > >> >
>> > >> > -Doug
>> > >> >
>> > >> > On Jan 21, 2014, at 6:07 PM, Deneau, Tom <tom.deneau at amd.com>
>> > wrote:
>> > >> >
>> > >> > > All --
>> > >> > >
>> > >> > > I have uploaded a webrev to allow use of the hsail simulator
>> > >> > > without
>> > >> > setting up any PATH or LD_LIBRARY_PATH variables to make it
>> > >> > easier to run the hsail junit tests as part of the graal gate:
>> > >> > >
>> > >> > > http://cr.openjdk.java.net/~tdeneau/graal-webrevs/webrev-lazy-n
>> > >> > > at
>> > >> > > ive
>> > >> > > -h
>> > >> > > sail-library-open/webrev/
>> > >> > >
>> > >> > >   * The main change was in gpu_hsail.cpp to lazily load the
>> > >> > > native
>> > >> > library,
>> > >> > >     (waiting until it is really needed).  It always tries the
>> > >> > > original
>> > >> > LD_LIBRARY_PATH
>> > >> > >     as a first try, and only if that doesn't work, it will try
>> > >> > >     the environment variable _OKRA_SIM_LIB_PATH_ (which will
>> > >> > > have been
>> > >> > set up by the
>> > >> > >     java side which will have copied the native library and
>> > >> > > hsailasm
>> > >> > to a temporary
>> > >> > >     directory if necessary)
>> > >> > >
>> > >> > >   * HSAILCompilationResult, added a call the the JNI side to
>> > >> > > get it to
>> > >> > load the native library
>> > >> > >     from the jar file if it needs to.
>> > >> > >
>> > >> > >   * mx/projects changed to use the newly built
>> > >> > > okra-with-sim.jar which
>> > >> > has been uploaded to
>> > >> > >     my cr.openjdk.java.net directory (the old okra.jar came
>> > >> > > from there
>> > >> > as well).
>> > >> > >     This jar file contains the prebuilt binaries but can also
>> > >> > > be built
>> > >> > from sources
>> > >> > >     following the instructions at
>> > >> > >
>> > >> > > https://github.com/HSAFoundation/Okra-Interface-to-HSAIL-Simula
>> > >> > > to
>> > >> > > r
>> > >> > >
>> > >> > > To test:
>> > >> > >   * make sure not only that the okra/dist/bin directory
>> > >> > >     is removed from PATH and LD_LIBRARY_PATH but also that it
>> > >> > > is not
>> > >> > one of the directories
>> > >> > >     listed under "ldconfig -p"
>> > >> > >
>> > >> > >
>> > >> > > The changes to the okra.jar file and the native library are not
>> > >> > > part of this webrev, but if interested, these changes can be
>> > >> > > viewed as a pull request on the github directory
>> > >> > > https://github.com/HSAFoundation/Okra-Interface-to-HSAIL-Simula
>> > >> > > to
>> > >> > > r/p
>> > >> > > ul
>> > >> > > l/11
>> > >> > >
>> > >> > >   * Again, the native library loading as performed by the
>> > >> > > OkraContext
>> > >> > class
>> > >> > >     first tries the original PATH and LD_LIBRARY_PATH strategy
>> > >> > > before
>> > >> > reverting
>> > >> > >     to using a temporary directory.  It looks in the jar file
>> > >> > > that
>> > >> > OkraContext.class
>> > >> > >     was loaded from and copies anything in resources/okra to a
>> > >> > temporary directory.
>> > >> > >     Then it tries to load the native library from there.
>> > >> > >
>> > >> > >   * the native library itself now contains an on_load function
>> > >> > >     with attribute((constructor)) which gets executed as the
>> > >> > > .so file
>> > >> > gets loaded.
>> > >> > >     It does the following:
>> > >> > >        * finds out where it was loaded from (using dladdr)
>> > >> > >        * appends that directory to PATH and LD_LIBRARY_PATH
>> > >> > > (this
>> > >> > allows
>> > >> > >          a later invoke of hsailasm to work)
>> > >> > >        * sets an environment variable _OKRA_SIM_LIB_PATH_.
>> > >> > > This env
>> > >> > var
>> > >> > >          is used later by the JVM when it wants to load the
>> > >> > > native
>> > >> > library
>> > >> > >          and discover its C-based entry points.
>> > >> > >
>> > >> > > -- Tom
>> > >> > >
>> > >> > >
>> > >> > >> -----Original Message-----
>> > >> > >> From: Tom Rodriguez [mailto:tom.rodriguez at oracle.com]
>> > >> > >> Sent: Wednesday, January 15, 2014 4:15 PM
>> > >> > >> To: Douglas Simon
>> > >> > >> Cc: Deneau, Tom; graal-dev at openjdk.java.net
>> > >> > >> Subject: Re: hsail gate commands
>> > >> > >>
>> > >> > >> dladdr can also be used to figure it out directly.
>> > >> > >>
>> > >> > >> tom
>> > >> > >>
>> > >> > >> On Jan 15, 2014, at 2:07 PM, Doug Simon
>> > >> > >> <doug.simon at oracle.com>
>> > >> > wrote:
>> > >> > >>
>> > >> > >>>
>> > >> > >>> On Jan 15, 2014, at 10:46 PM, Deneau, Tom
>> > >> > >>> <tom.deneau at amd.com>
>> > >> > wrote:
>> > >> > >>>
>> > >> > >>>> Doug --
>> > >> > >>>>
>> > >> > >>>> how does the JNI_OnLoad know what path it was loaded from?
>> > >> > >>>> or would the java side have to pass this information down?
>> > >> > >>>
>> > >> > >>> The Java side has to pass this down. One way to do it would
>> > >> > >>> be to
>> > >> > >> define a static String field in some class in the Okra Java
>> > >> > >> library and assign it the path before calling System.load().
>> > >> > >> Inside JNI_OnLoad, the JNI interface can be used to find the
>> > >> > >> class and read
>> > >> > the field.
>> > >> > >>>
>> > >> > >>> -Doug
>> > >> > >>>
>> > >> > >>>>> -----Original Message-----
>> > >> > >>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > >>>>> Sent: Wednesday, January 15, 2014 3:11 PM
>> > >> > >>>>> To: Deneau, Tom
>> > >> > >>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>
>> > >> > >>>>> Hi Tom,
>> > >> > >>>>>
>> > >> > >>>>> A quick glance through the HSAIL C++ layer seems to
>> > >> > >>>>> indicate that it should be able to lazily initialize the
>> > >> > >>>>> HSAIL library linkage
>> > >> > >> (currently
>> > >> > >>>>> done in gnu::Hsail::probe_linkage()). This means it should
>> > >> > >>>>> be
>> > >> > >> deferrable
>> > >> > >>>>> until after the Java part of the Okra library has had a
>> > >> > >>>>> chance to extract the native library file (and hsailasm
>> > >> > >>>>> executable) into the
>> > >> > >> file
>> > >> > >>>>> system. Then you would call System.load() to load the
>> > library.
>> > >> > >> There's
>> > >> > >>>>> still the problem of how to communicate the absolute path
>> > >> > >>>>> of the
>> > >> > >> native
>> > >> > >>>>> library to the os::dll_load call. There may be a more
>> > >> > >>>>> elegant
>> > >> > >> solution,
>> > >> > >>>>> but I'd suggest using the JNI_OnLoad[1] mechanism. Inside
>> > >> > >>>>> the
>> > >> > >> JNI_OnLoad
>> > >> > >>>>> function in the Okra native library, you can set an
>> > >> > >>>>> environment
>> > >> > >> variable
>> > >> > >>>>> (e.g., OKRA_DLL_PATH) which gnu::Hsail::probe_linkage can
>> > >> > >>>>> then
>> > >> > use.
>> > >> > >> Note
>> > >> > >>>>> that the environment variable has to be set this way as
>> > >> > >>>>> there's no
>> > >> > >> way
>> > >> > >>>>> to set an environment variable from Java.
>> > >> > >>>>>
>> > >> > >>>>> By the time you finish all this hackery, you may start
>> > >> > >>>>> thinking that simply porting the HSAIL simulator/toolchain
>> > >> > >>>>> to Java might be easier
>> > >> > >> ;-)
>> > >> > >>>>>
>> > >> > >>>>> [1]
>> > >> > >>>>>
>> > >> > >>
>> > http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/invocation.
>> > >> > >> ht
>> > >> > >> ml#
>> > >> > >>>>> JNI_OnLoad
>> > >> > >>>>>
>> > >> > >>>>> On Jan 15, 2014, at 9:05 PM, Deneau, Tom
>> > >> > >>>>> <tom.deneau at amd.com>
>> > >> > wrote:
>> > >> > >>>>>
>> > >> > >>>>>> Doug --
>> > >> > >>>>>>
>> > >> > >>>>>> One complication I saw here.
>> > >> > >>>>>> The native library file is used both from the java side
>> > >> > >>>>>> (using
>> > >> > >>>>>> loadLibrary) and from the hotspot side (using os::dll_load
>> > >> > >>>>>> followed
>> > >> > >> by
>> > >> > >>>>> looking up the specific functions it needs).
>> > >> > >>>>>> And the hotspot attempt to load happens first (from
>> > >> gpu::init()).
>> > >> > >>>>>>
>> > >> > >>>>>> So anything the java side would have done with resources
>> > >> > >>>>>> in the
>> > >> > >> .jar
>> > >> > >>>>>> file and temp directories wouldn't have been done yet.
>> > >> > >>>>>>
>> > >> > >>>>>> -- Tom
>> > >> > >>>>>>
>> > >> > >>>>>>
>> > >> > >>>>>>> -----Original Message-----
>> > >> > >>>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > >>>>>>> Sent: Tuesday, January 14, 2014 3:27 AM
>> > >> > >>>>>>> To: Deneau, Tom
>> > >> > >>>>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>>>
>> > >> > >>>>>>>
>> > >> > >>>>>>> On Jan 13, 2014, at 8:52 PM, Deneau, Tom
>> > >> > >>>>>>> <tom.deneau at amd.com>
>> > >> > >> wrote:
>> > >> > >>>>>>>
>> > >> > >>>>>>>> Doug --
>> > >> > >>>>>>>>
>> > >> > >>>>>>>> Using the techniques in
>> > >> > >>>>>>>> http://frommyplayground.com/how-to-load-native-jni-libra
>> > >> > >>>>>>>> ry
>> > >> > >>>>>>>> -fr
>> > >> > >>>>>>>> om
>> > >> > >>>>>>>> -
>> > >> > >> jar/
>> > >> > >>>>>>>> that you sent, would it be acceptable to leave hsailasm
>> > >> > >>>>>>>> as a separate
>> > >> > >>>>>>> executable which gets unjarred into the system temporary
>> > >> > >>>>>>> directory and then executed from there using an absolute
>> > >> > pathname?
>> > >> > >>>>>>>
>> > >> > >>>>>>> Sounds feasible and reasonable to me.
>> > >> > >>>>>>>
>> > >> > >>>>>>>>
>> > >> > >>>>>>>> -- Tom
>> > >> > >>>>>>>>
>> > >> > >>>>>>>>
>> > >> > >>>>>>>>
>> > >> > >>>>>>>>> -----Original Message-----
>> > >> > >>>>>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > >>>>>>>>> Sent: Sunday, January 12, 2014 2:29 PM
>> > >> > >>>>>>>>> To: Deneau, Tom
>> > >> > >>>>>>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>> On Jan 9, 2014, at 9:50 PM, Deneau, Tom
>> > >> > >>>>>>>>> <tom.deneau at amd.com>
>> > >> > >> wrote:
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>>> Doug --
>> > >> > >>>>>>>>>>
>> > >> > >>>>>>>>>> We'll take a look at your suggestion.
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>> Great.
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>> BTW, you guys may want to bring
>> > >> > >>>>>>>>>
>> > >> > >> https://wiki.openjdk.java.net/display/Sumatra/The+HSAIL+Simula
>> > >> > >> to
>> > >> > >> r
>> > >> > >>>>>>>>> more up to date at some point. At least you can remove
>> > >> > >>>>>>>>> the
>> > >> > >> "(webrev
>> > >> > >>>>>>>>> under review)" qualifications.
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>> -Doug
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>>>> -----Original Message-----
>> > >> > >>>>>>>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > >>>>>>>>>>> Sent: Thursday, January 09, 2014 1:38 PM
>> > >> > >>>>>>>>>>> To: Deneau, Tom
>> > >> > >>>>>>>>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>>>>>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>> On Jan 9, 2014, at 6:51 PM, Tom Rodriguez
>> > >> > >>>>>>>>>>> <tom.rodriguez at oracle.com>
>> > >> > >>>>>>>>>>> wrote:
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>> It would still be great if there would be some
>> > >> > >>>>>>>>>>>>>>> way to incorporate
>> > >> > >>>>>>>>>>> the hsail simulator into the gate...
>> > >> > >>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>> A good start would be if you could provide us with
>> > >> > >>>>>>>>>>>>>> a patch
>> > >> > >> for
>> > >> > >>>>>>>>>>>>>> `mx',
>> > >> > >>>>>>>>>>> that adds a command which sets up the HSAIL simulator
>> > >> > >> properly.
>> > >> > >>>>>>>>>>> Currently our gate is running on Linux, but this
>> > >> > >>>>>>>>>>> might change
>> > >> > >> in
>> > >> > >>>>>>>>>>> the future, so keep in mind that this should
>> > >> > >>>>>>>>>>> potentially work
>> > >> > >> on
>> > >> > >>>>>>>>>>> all platforms (Linux, MacOSX, Windows).
>> > >> > >>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>> Our gate server is basically executing `mx gate'
>> > >> > >>>>>>>>>>>>>> to
>> > >> > >> validate
>> > >> > >>>>>>>>>>> changes. That includes building, bootstrap tests,
>> > >> > >>>>>>>>>>> unittest,
>> > >> > >> etc.
>> > >> > >>>>>>>>>>> If that command was successful on our gate server,
>> > >> > >>>>>>>>>>> the changes are accepted and pushed to the
>> repository.
>> > >> > >>>>>>>>>>> Having the `mx
>> > >> > >> gate'
>> > >> > >>>>>>>>>>> command, one can reproduce the gate process on
>> > >> > >>>>>>>>>>> his/her local
>> > >> > >>>>>>> machine.
>> > >> > >>>>>>>>>>> Therefore it would be important that one can easily
>> > >> > >>>>>>>>>>> and
>> > >> > >> reliable
>> > >> > >>>>>>>>>>> set up the HSAIL environment if it is part of the
>> > >> > >>>>>>>>>>> gate
>> > >> > >> process.
>> > >> > >>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>> Given the dependencies for building the
>> > >> > >>>>>>>>>>>>> simulator[1] and the fact it
>> > >> > >>>>>>>>>>> only currently runs on linux, I don't think it will
>> > >> > >>>>>>>>>>> be that
>> > >> > >> easy
>> > >> > >>>>>>>>>>> to come up with an mx command.
>> > >> > >>>>>>>>>>>>
>> > >> > >>>>>>>>>>>> What precompiling an okra distribution for linux
>> > >> > >>>>>>>>>>>> that mx can
>> > >> > >>>>>>>>> download?
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>> If Okra used a self contained JNI library, that might
>> > >> > >>>>>>>>>>> just
>> > >> > >> work.
>> > >> > >>>>>>>>>>> However, the way it is deployed now involves having
>> > >> > >>>>>>>>>>> the
>> > >> > >> hsailasm
>> > >> > >>>>>>>>>>> executable on your PATH. Also, LD_LIBRARY_PATH has to
>> > >> > >>>>>>>>>>> be setup
>> > >> > >> to
>> > >> > >>>>>>>>>>> find the JNI library itself.
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>> @AMD guys: How hard would it be to make the Okra JNI
>> > >> > >>>>>>>>>>> be self contained library and include the hsailasm
>> > >> > >>>>>>>>>>> functionality? If that's possible, you could bundle
>> > >> > >>>>>>>>>>> the JNI library inside the
>> > >> > >> Okra
>> > >> > >>>>>>>>>>> jar using a technique like
>> > >> > >>>>>>>>>>> http://frommyplayground.com/how-to-load-native-jni-li
>> > >> > >>>>>>>>>>> br
>> > >> > >>>>>>>>>>> ary
>> > >> > >>>>>>>>>>> -
>> > >> > >> from-j
>> > >> > >>>>>>>>>>> ar
>> > >> > >>>>>>>>>>> /
>> > >> > >>>>>>>>> to avoid having to set up PATH or LD_LIBRARY_PATH.
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>> -Doug
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>>>> [1]
>> > >> > >>>>>>>>>>>>> https://github.com/HSAFoundation/Okra-Interface-to-
>> > >> > >>>>>>>>>>>>> HS
>> > >> > >>>>>>>>>>>>> AIL
>> > >> > >>>>>>>>>>>>> -
>> > >> > >> Simula
>> > >> > >>>>>>>>>>>>> to
>> > >> > >>>>>>>>>>>>> r#
>> > >> > >>>>>>>>>>>>> ok
>> > >> > >>>>>>>>>>>>> ra-interface-to-hsail-simulator
>> > >> > >>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>> -----Original Message-----
>> > >> > >>>>>>>>>>>>>>>> From: graal-dev-bounces at openjdk.java.net
>> > >> > >>>>>>>>>>>>>>>> [mailto:graal-
>> > >> > >> dev-
>> > >> > >>>>>>>>>>>>>>>> bounces at openjdk.java.net] On Behalf Of Deneau,
>> > >> > >>>>>>>>>>>>>>>> Tom
>> > >> > >>>>>>>>>>>>>>>> Sent: Monday, December 16, 2013 11:24 AM
>> > >> > >>>>>>>>>>>>>>>> To: Doug Simon
>> > >> > >>>>>>>>>>>>>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>>>>>>>>>>>>> Subject: RE: hsail gate commands
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>> OK, I see why there is no error when running mx
>> > >> > >>>>>>>>>>>>>>>> --vm
>> > >> > >> server
>> > >> > >>>>>>>>>>>>>>>> unittest hsail
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>> At some point (I don't recall why, maybe at
>> > >> > >>>>>>>>>>>>>>>> Oracle's request??), we put in some code in
>> > >> > >>>>>>>>>>>>>>>> KernelTester that if
>> > >> > >> it
>> > >> > >>>>>>>>>>>>>>>> could not find the okra simulator files would
>> > >> > >>>>>>>>>>>>>>>> just
>> > >> > >> silently
>> > >> > >>>>>>>>>>>>>>>> not run the tests (which I guess counts as a
>> > pass).
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>> No the hsail simulator is not a java app at all.
>> > >> > >>>>>>>>>>>>>>>> The page at
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >> https://wiki.openjdk.java.net/display/Sumatra/The+HSAIL+Simu
>> > >> > >>>>>>>>>>>>>>>> la to r should describe how to build it and what
>> > >> > >> environment
>> > >> > >>>>>>>>>>>>>>>> variables to set up to use it...
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>> -- Tom
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>> -----Original Message-----
>> > >> > >>>>>>>>>>>>>>>>> From: Doug Simon [mailto:doug.simon at oracle.com]
>> > >> > >>>>>>>>>>>>>>>>> Sent: Monday, December 16, 2013 11:02 AM
>> > >> > >>>>>>>>>>>>>>>>> To: Deneau, Tom
>> > >> > >>>>>>>>>>>>>>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>>>>>>>>>>>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>> On Dec 16, 2013, at 5:48 PM, Deneau, Tom
>> > >> > >>>>>>>>>>>>>>>>> <tom.deneau at amd.com>
>> > >> > >>>>>>>>>>> wrote:
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>> Doug --
>> > >> > >>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>> I see.
>> > >> > >>>>>>>>>>>>>>>>>> I don't understand why the tests would run
>> > >> > >>>>>>>>>>>>>>>>>> without
>> > >> > >> error
>> > >> > >>>>>>>>>>>>>>>>>> if the simulator and associated assembler is
>> > >> > >>>>>>>>>>>>>>>>>> missing
>> > >> > >>>>> but...
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>> What error are you seeing?
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>> Is there a way we can get the HSAIL simulator
>> > >> > >>>>>>>>>>>>>>>>>> into the gate
>> > >> > >>>>>>>>>>>>>>>>> infrastructure?
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>> Is it a pure Java app yet? That would certainly
>> > >> > >>>>>>>>>>>>>>>>> make it
>> > >> > >>>>>>>>> trivial.
>> > >> > >>>>>>>>>>>>>>>>> In any case, I'll defer to Bernhard or Gilles
>> > >> > >>>>>>>>>>>>>>>>> to answer this since they are the maintainers
>> > >> > >>>>>>>>>>>>>>>>> of this
>> > >> > >> infrastructure.
>> > >> > >>>>>>>>>>>>>>>>> Can you please send instructions on how to
>> > >> > >>>>>>>>>>>>>>>>> install/use/configure the
>> > >> > >>>>>>>>>>> simulator.
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>> -Doug
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> -----Original Message-----
>> > >> > >>>>>>>>>>>>>>>>>>> From: Doug Simon
>> > >> > >>>>>>>>>>>>>>>>>>> [mailto:doug.simon at oracle.com]
>> > >> > >>>>>>>>>>>>>>>>>>> Sent: Monday, December 16, 2013 10:36 AM
>> > >> > >>>>>>>>>>>>>>>>>>> To: Deneau, Tom
>> > >> > >>>>>>>>>>>>>>>>>>> Cc: graal-dev at openjdk.java.net
>> > >> > >>>>>>>>>>>>>>>>>>> Subject: Re: hsail gate commands
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> On Dec 16, 2013, at 5:21 PM, Deneau, Tom
>> > >> > >>>>>>>>>>>>>>>>>>> <tom.deneau at amd.com>
>> > >> > >>>>>>>>>>>>>>>> wrote:
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>>> Doug --
>> > >> > >>>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>>> I noticed in syncing with the trunk as of
>> > >> > >>>>>>>>>>>>>>>>>>>> last Friday that all of our
>> > >> > >>>>>>>>>>>>>>>>>>> HSAIL test cases broke.  The cause was some
>> > >> > >>>>>>>>>>>>>>>>>>> imperfect code in our HSAILAssembler for
>> > >> > >>>>>>>>>>>>>>>>>>> compare instructions
>> > >> > >> which
>> > >> > >>>>>>>>>>>>>>>>>>> when presented with an unordered compare
>> > >> > >>>>>>>>>>>>>>>>>>> could
>> > >> > >> generate
>> > >> > >>>>>>>>>>>>>>>>>>> code that would not assemble, and was easy to
>> > fix.
>> > >> > >>>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>>> But I was wondering how this made it past
>> > >> > >>>>>>>>>>>>>>>>>>>> the
>> > >> gate.
>> > >> > >>>>>>>>>>>>>>>>>>>> Can you describe what gate commands are used
>> > >> > >> regarding
>> > >> > >>>>>>>>> hsail?
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> We simply run 'mx gate' which will include
>> > >> > >>>>>>>>>>>>>>>>>>> running all the HSAIL unit tests.
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> On my Mac with the latest bits:
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> $ mx --vm server unittest hsail executing
>> > >> > >>>>>>>>>>>>>>>>>>> junit tests
>> > >> > >>>>>>> now...
>> > >> > >>>>>>>>>>>>>>>>>>> (107 test classes) JUnit version 4.8
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>
>> > >> > >>>>>
>> > >> > >>
>> > >> >
>> > >>
>> >
>> ........................................................................
>> > >> > >>>>>>>>>>>>>>>>>>> ...........I................I......
>> > >> > >>>>>>>>>>>>>>>>>>> Time: 5.525
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> OK (105 tests)
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> Keep in mind I (and the gate infrastructure)
>> > >> > >>>>>>>>>>>>>>>>>>> don't
>> > >> > >> have
>> > >> > >>>>>>>>>>>>>>>>>>> the HSAIL simulator.
>> > >> > >>>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>>> -Doug
>> > >> > >>>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>>
>> > >> > >>>>>>>>>>>>
>> > >> > >>>>>>>>>>>
>> > >> > >>>>>>>>>>
>> > >> > >>>>>>>>>>
>> > >> > >>>>>>>>>
>> > >> > >>>>>>>>
>> > >> > >>>>>>>>
>> > >> > >>>>>>>
>> > >> > >>>>>>
>> > >> > >>>>>>
>> > >> > >>>>>
>> > >> > >>>>
>> > >> > >>>>
>> > >> > >>>
>> > >> > >>
>> > >> > >
>> > >> > >
>> > >> >
>> > >
>> > >
>


More information about the graal-dev mailing list