GPGPU Team Meeting Minutes August 29 2013

Next meeting

Actions

  • GAnthony, sumits : Comparison of SNU, Pocl, and Clover

Minutes

[22:09]         tgall_foo       DNS was not happy there for a bit
[22:09]         tgall_foo       thanks for being here!
[22:10]         tgall_foo       What I'd like to do for our initial meeting is talk about backlog tasks (and add to our backlog) and then each of us grab some things off the backlog to work on
[22:10]         tgall_foo       https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/GPGPU
[22:10]         GAnthony        I was wondering, if it's easier on those joining later at night, I can go an hour earlier (7 AM, 7PM).
[22:11]         tgall_foo       evening does work for me it's after the kids are in bed which is the important part
[22:12]         GAnthony        OK, I was also thinking about showliu.
[22:12]         sumits  well, I'm ok either ways I guess.. but yes, I think showliu's the marker in this case :)
[22:13]         GAnthony        OK.
[22:13]         tgall_foo       GAnthony, it should be about 11:00am there right now for showliu 
[22:13]         GAnthony        Then, 11:00 PM next week?
[22:13]         showliu sorry just afk
[22:14]         showliu I'm back
[22:14]         tgall_foo       np showliu I was late getting here
[22:14]         tgall_foo       https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/GPGPU  pull that page up in a web browser if you would
[22:15]         showliu ok
[22:15]         GAnthony        got it
[22:15]         sumits  me too
[22:15]         tgall_foo       ok so let's walk through the backlog and add to it
[22:16]         tgall_foo       so there are currently 3 components to HSA released thus far.  Beyond that the rest is either unimplemented or not released
[22:16]         tgall_foo       all of these are on git hub
[22:16]         tgall_foo       https://github.com/HSAFoundation/
[22:17]         tgall_foo       so the task is to perform the ubuntu/OE packaging so they can be built. Not sur ethe simulator needs to be built for ARM
[22:17]         tgall_foo       but the tools certainly
[22:17]         tgall_foo       next we have a GPGPU whitepaper we should ideally complete by the end of October
[22:17]         tgall_foo       we really should try to complete about a section a week
[22:18]         tgall_foo       tho first priority is probabably considering what sections should be in there to begin with
[22:19]         tgall_foo       Next is OpenCL drivers. Obviously for Mali we're sort of stuck for the time being
[22:19]         tgall_foo       I've also ordered an ODROID which should in theory have SGX OpenCL drivers soonish 
[22:19]         tgall_foo       but in the meantime we should think about pocl/clover/SNU or others which are all open source OpenCL implementations 
[22:20]         tgall_foo       the thought being should we invest time into an open source implementation
[22:20]         tgall_foo       and then last there's the start of an experience report in the wiki that would be a good place to put information about pocl/clover/SNU and the current driver situation on ARM
[22:21]         tgall_foo       are there any other ideas for things we should do ?
[22:21]         GAnthony        That seems like a good start.
[22:22]         sumits  any other platforms we are hoping to be able to target?
[22:22]         tgall_foo       o and I should mention waffle/piglit which includes an open source test suite (it's fairly small) for OpenCL
[22:23]         sumits  so eg the TI keystone ones...?
[22:23]         GAnthony        I also found another OpenCL benchmark suite (sent via email).
[22:23]         sumits  or even fujitsu?
[22:23]         tgall_foo       GAnthony, there's an API for driving the TI DSPs right ?
[22:23]         showliu fhjitsu using also mali
[22:24]         GAnthony        There are actually a few: Bridge, rpmsg/remoteproc, SysLink
[22:24]         tgall_foo       showliu, for GPGPU will you want to use the Mali?
[22:24]         showliu hmm... for fujitsu platform it should be
[22:25]         showliu but I also had pre-order the odroid-xu
[22:26]         showliu so U think both OK for me
[22:26]         tgall_foo       showliu, ok
[22:26]         tgall_foo       GAnthony, so what is the Bridge & SysLink ?
[22:27]         GAnthony        DSP Bridge is the API used in SNU, it is older, not really supported anymore.
[22:27]         GAnthony        SysLink is the current IPC API, which is being replaced on Linux with rpmsg/remoteproc (upstream).  SysLink was not upstreamable.
[22:27]         GAnthony        Google Android uses rpmsg/remoteproc.
[22:28]         tgall_foo       ah ok
[22:28]         GAnthony        for the Galaxy Nexus phone
[22:28]         tgall_foo       That also brings up renderscript 
[22:28]         tgall_foo       which I must confess I'm a little less than excited about but that's mostly an opinion influenced by others who want Google to adopt OpenCL
[22:30]         sumits  GAnthony: 1 question though - the TI openCL implementation on keystone arch runs on the DSPs?
[22:30]         sumits  I mean, there doesn't seem to be any GPUs, right?
[22:30]         GAnthony        It runs on two platforms:
[22:31]         GAnthony        1) Linux PC with DSP Plug-In cards
[22:31]         GAnthony        2) Hawking board with quad ARM15 and 8 DSPs.
[22:31]         GAnthony        RIght, no GPU support.
[22:31]         sumits  ah ok.. :)
[22:32]         sumits  am familiar with the OMAP devices, not the keystone ones.
[22:32]         GAnthony        I've asked around if any OpenCL SGX support on DRA7xx (OMAP5 derivative), waiting for an answer.
[22:32]         sumits  sure, thanks!
[22:32]         tgall_foo       yeah it's a pretty interesting configuration
[22:32]         sumits  afair, nopes..
[22:33]         GAnthony        sumits:  that's probably the case.
[22:34]         tgall_foo       ok.  so given all that it for hardware we want to use it's ARM CPU, Mali 6xx and then TI DSPs  ?
[22:34]         sumits  sure; of course, my info could be outdated, and IMG might be now willing to provide OpenCL to TI :)
[22:34]         tgall_foo       with odroid as a potential candidate given the hopeful availability of OpenCL drivers for SGX
[22:35]         tgall_foo       Does that sound right ?
[22:36]         GAnthony        Yeah, I was hoping we could get OpenCL working on the TI OMAP SGX, but sounds like there's no support.
[22:37]         tgall_foo       well nothing wrong with having it on the list as a "nice to have"
[22:37]         GAnthony        Yeah, I'll keep checking...
[22:37]         sumits    +1 tgall_foo
[22:37]         tgall_foo       sound good showliu ?
[22:37]         showliu sure
[22:37]         tgall_foo       ok! thanks
[22:38]         tgall_foo       so this brings us to implementations
[22:38]         tgall_foo       For Mali Sumit and I are trying and I mean really TRYING to bring about availability of a Mali OpenCL driver. We're working with ARM. It could be awhile
[22:39]         tgall_foo       With Pocl/SNU/Clover I'd like to suggest we look and basically pick one to invest time and effort 
[22:39]         showliu for opensource version?
[22:40]         tgall_foo       showliu, open source would be pocl/snu/clover and no these would not drive mali
[22:40]         tgall_foo       least unless there was some sort of API that could be called
[22:40]         showliu ah ok
[22:40]         tgall_foo       so for Mali it'd be a closed binary driver
[22:40]         GAnthony        Maybe we can specify some criteria for selecting between pocl/SNU/Clover.
[22:41]         tgall_foo       GAnthony, exactly
[22:41]         sumits  +1 :)
[22:41]         showliu yup
[22:41]         GAnthony        For example, existing active community, ease of adding new device types, etc.
[22:41]         sumits  so, availability /portability on all platforms that we're targettng to start with?
[22:41]         tgall_foo       gaps in current implementation
[22:41]         sumits  right..
[22:41]         sumits  shell-exec v/s lib calls :)
[22:42]         tgall_foo       sumits, that too ;-)
[22:42]         GAnthony        I read pocl uses Clang.  Does it call clang via exec calls?
[22:42]         tgall_foo       proper use of LLVM :-)
[22:42]         sumits  yes GAnthony
[22:42]         tgall_foo       yup
[22:42]         sumits  :)
[22:42]         GAnthony        Okay...
[22:43]         sumits  tgall_foo and I dabbled a bit with pocl, and found, for ex, correct error code value returns are difficult because of that
[22:43]         sumits  (shell execs)
[22:43]         sumits  we sort of provided the port for chromebook
[22:43]         GAnthony        Clover was a Google Summer of Code project, there's a good developer blog created during the project, but no active community.  We'd basically have to breath new life into it.
[22:44]         sumits  hmm.. on the other hand, pocl community is fairly active..
[22:44]         showliu yes I think so
[22:44]         tgall_foo       GAnthony, I don't mind breathing new life into it
[22:45]         GAnthony        OK.
[22:45]         tgall_foo       but likewise with pocl getting it to use llvm correctly seems like that'd be first priority 
[22:45]         GAnthony        How is the pocl software architecuture?  Would it be easy to add DSPs?
[22:47]         tgall_foo       we hadn't look at it from that perspective
[22:47]         sumits  I can check again, (we retrofitted existing ARM support to chromebook and hardfps)
[22:47]         tgall_foo       pocl IIRC was entirely cpu only at this point with a desire to utilize hardware
[22:48]         sumits  yes, that's about right
[22:49]         tgall_foo       so that's probably two advantages for clover
[22:49]         tgall_foo       1) uses LLVM correctly via the API
[22:49]         showliu maybe SNU also related to TI DSP
[22:49]         tgall_foo       2) has both CPU and a hardware implementation
[22:49]         GAnthony        I guess once real hardware (GPU, DSP) comes into play we have all the memory space management to ensure works.
[22:50]         tgall_foo       yup
[22:51]         GAnthony        I noted Clover is heavily C++ based, and TI examples use the OpenCL C++ bindings.  Is that preferred among openCL users?
[22:52]         tgall_foo       well clover can do the C bindings too can't it ?
[22:52]         GAnthony        Actually, that's just the host code.  The kernels are still C.
[22:52]         tgall_foo       from teh OpenCL usage I've seen I haven't seen the c++ bindings used, just the C
[22:52]         tgall_foo       ok
[22:54]         GAnthony        Yes.  Clover can do C bindings.
[22:54]         tgall_foo       ok well .. let's take the comparisons and put them into wiki in the "experience" page or even a new page
[22:54]         tgall_foo       GAnthony, sumits : do you two want to take on that task ?
[22:55]         tgall_foo       think we can be to a point to make a decision by next meeting ?
[22:55]         sumits  sure, we can try that. we both can just keep adding / updating the wiki, and hopefully it should help us decide :)
[22:56]         GAnthony        Yes, we can shoot for that.
[22:57]         tgall_foo       great
[22:57]         GAnthony        sumits: I think if we update the criteria list, from what tgall started here, it will help the decision process.
[22:58]         sumits  absolutely.
[22:58]         >showliu<       do you have a preference as far as tasks ?
[22:58]         >showliu<       and do you have time for tasks, with CDF ?
[23:01]         tgall_foo       ok
[23:01]         tgall_foo       so our hour is pretty much up sounds like we've got some goals for next week
[23:02]         tgall_foo       only thing we haven't talked about is the white paper 
[23:04]         GAnthony        I can add a section under "Projects" for Clover, similar to the others.
[23:05]         tgall_foo       sure
[23:05]         tgall_foo       I am going to start in on the OpenCL application Model
[23:06]         sumits  tgall_foo: did you post a link to the white paper somewhere? am sorry, can't see it
[23:06]         GAnthony        Is it this? https://wiki.linaro.org/WorkingGroups/Middleware/Graphics/Docs/OpenCLExperiences
[23:07]         tgall_foo       nope
[23:07]         tgall_foo       it's in google docs
[23:07]         tgall_foo       this one : https://docs.google.com/a/linaro.org/document/d/1CXuXrA29OEtik8UCjNDVDUIBDMDIyhwl3BT29q7Y9D8/edit?usp=sharing
[23:07]         sumits  sure, thanks!
[23:08]         tgall_foo       you're added now too showliu 
[23:08]         showliu thanks
[23:09]         sumits  tgall_foo: you might want to give some bckground for the white paper for GAnthony's benefit?
[23:09]         sumits  and even showliu's..
[23:10]         sumits  .. the document might be self-explaining too :)
[23:11]         tgall_foo       ok so the TSC, the Linaro Technical Steering Committee has asked for a white paper to be written
[23:11]         tgall_foo       the scope is the technology, the gaps and what linaro can/should do 
[23:12]         tgall_foo       HSA sort of dominated the title to start, but titles can be changed :-)
[23:15]         tgall_foo       make sense?
[23:15]         showliu sure
[23:16]         tgall_foo       ok .. well anything else to bring up ?
[23:17]         GAnthony        yes.  The more experience we get with OpenCL, the better we can determine what it is Linaro should do to improve it :-)
[23:18]         tgall_foo       yes most definitely
[23:18]         tgall_foo       and for that I'd like to propose we take some open source packages and adapt them to take advantage of OpenCL
[23:18]         sumits  right
[23:19]         tgall_foo       there's the very short list in jira right now
[23:21]         tgall_foo       that's libjpeg-turbo,  sqlite, opencv and umm umm there's one more 
[23:22]         tgall_foo       o right, piglit which is done
[23:24]         tgall_foo       so fleshing that list out would be a good thing
[23:24]         tgall_foo       actually that brings up tools
[23:24]         tgall_foo       measurement tools in particular
[23:25]         tgall_foo       utilization and power in particular
[23:26]         GAnthony        saw this, looked interesting: https://github.com/vetter/shoc/wiki
[23:27]         sumits  btw, www.youtube.com/watch?v=ZPuegOIFNws sort of shows OpenCL on a Pandaboard ES :) - but there don't still seem to be 'available' drivers for it!
[23:28]         tgall_foo       GAnthony, nice link!
[23:29]         GAnthony        sumits: yeah, it was a secret deal ;-)
[23:29]         sumits  he he - I think I know some of them ;)
[23:30]         tgall_foo       ok .. well now how about we call it a night ? :-)
[23:30]         tgall_foo       or day as the case may be for some
[23:31]         GAnthony        Yup.  Time for dinner...
[23:32]         tgall_foo       thanks showliu GAnthony sumits 
[23:32]         sumits  sure - thanks everyone!
[23:32]         GAnthony        Thanks!
[23:32]         showliu thanks all

WorkingGroups/Middleware/Graphics/Notes/GPGPU-2013-08-29 (last modified 2013-09-04 16:46:01)