Announcement

Collapse
No announcement yet.

Running OpenCL On The GPU With Gallium3D

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Running OpenCL On The GPU With Gallium3D

    Phoronix: Running OpenCL On The GPU With Gallium3D

    With all of the recent improvements going into Mesa/Gallium3D, along with some work advancements to the AMD GPU LLVM back-end, it's slowly becoming a suitable time for enthusiasts wishing to experiment with OpenCL on the open-source Linux graphics stack through Gallium3D and the "Clover" state tracker...

    http://www.phoronix.com/vr.php?view=MTI4MTc

  • #2
    Application support?

    Does any software applications on Linux support GPGPU or OpenCL?

    Does GIMP or Blender support GPGPU or OpenCL?

    Comment


    • #3
      Blender does support GPU rendering with their Cycles Render Engine. There is work on openCL in gegl (the library that new versions gimp uses for graphics operations), but i am not sure what state it is in. Darktable also has openCL.

      Comment


      • #4
        Originally posted by uid313 View Post
        Does any software applications on Linux support GPGPU or OpenCL?

        Does GIMP or Blender support GPGPU or OpenCL?
        It's a chicken and egg problem.
        Without a proper and widely deployed OpenCL implementation, there won't be too many people willing to use OpenCL.
        Last edited by zxy_thf; 01-23-2013, 06:53 AM. Reason: typo fix

        Comment


        • #5
          Originally posted by zxy_thf View Post
          It's a chicken and egg problem.
          Without a proper and widely deployed OpenCL implementation, there won't be too many people willing to use OpenCL.
          OpenCL support is available in both blobs, so the chicken is there.

          Comment


          • #6
            Originally posted by pingufunkybeat View Post
            OpenCL support is available in both blobs, so the chicken is there.
            Not really, because that is strictly restricted to the blobs. You might find yourself a few corner-case users, but certainly not widespread deployment. Why would anyone build software depending on openCL if they can't trust that their customers will be able to use it?

            In other words, it MUST be supported by both AMD and Intel **open source** drivers, AND have a solid CPU fallback, before software developers can trust in its availability.

            Comment


            • #7
              Originally posted by droidhacker View Post
              Why would anyone build software depending on openCL if they can't trust that their customers will be able to use it?
              I don't think that consumer any software will DEPEND on OpenCL any time soon. But it is reasonable to provide an OpenCL-accelerated path for some computationally intensive operations if there are enough people who can make use of it. And there are enough blob users out there.

              I'm just saying that "nobody can run OpenCL" is not a good argument. Plenty of people can already, others will follow as open drivers mature.

              Comment


              • #8
                i think right now it makes more sense for developers to invest time in openMP if they want to target a wide audience. dual cores are now standard on laptops and desktops, and quad and oct are not rare. Often adding just a few prama statements to the loops that do most of the processing can give big speed ups. OpenCL (and CUDA) only work on a smaller subset of algorithms, and are more effort to program and debug (though if you have a problem that suits them you can get huge speed ups).

                I'd also suspect that foss software developers are more likely to be using opensource drivers than typical linux users. They are more likely to have chosen hardware with drivers in mind. they are more likely to be using opensource for philosophical reasons. and they might like to be able to debug kernel crashes.

                Comment


                • #9
                  Originally posted by droidhacker View Post
                  Not really, because that is strictly restricted to the blobs. You might find yourself a few corner-case users, but certainly not widespread deployment. Why would anyone build software depending on openCL if they can't trust that their customers will be able to use it?

                  In other words, it MUST be supported by both AMD and Intel **open source** drivers, AND have a solid CPU fallback, before software developers can trust in its availability.
                  There are CPU fallbacks already in place. Most code which runs OpenCL has a pure CPU path just in case the CL runtime isn't available... And on top of that, there are pure-CPU OpenCL runtime libraries available. The AMD CL SDK, when installed, will run on any Radeon 5000+ with an appropriate Catalyst version, and will run on any x86/x86_64 CPU with SSE 2.1 (I think it's 2.1, could be mistaken).

                  Two accelerated applications which haven't been mentioned: Bitcoin mining, aircrack-ng.

                  There's also open-source CPU-based OpenCL implementations already available.

                  The OpenCL run-times (closed and open) I know about:
                  http://pocl.sourceforge.net/
                  http://aces.snu.ac.kr/Center_for_Man...Framework.html
                  http://aces.snu.ac.kr/Center_for_Man...ing/SnuCL.html
                  http://software.intel.com/en-us/vcso...ols/opencl-sdk
                  AMD's run-time is included in the catalyst driver (they have a separate SDK for devs)
                  Nvidia includes their run-time in their binary driver (they have a separate SDK for devs)
                  Qualcomm supposedly ships a runtime for some of their GPUs
                  Same for some PowerVR/Adreno chips
                  MacOS X 10.6 and higher all come with both GPU (when the hardware supports it) and CPU-based CL implementations.

                  For those who've actually paid khronos for compliance testing, there's a page of valid conformance runs here:
                  http://www.khronos.org/conformance/a...oducts#topencl

                  One that I didn't expect in that page:
                  Imagination Technologies 2011-03-15 OpenCL_1_0
                  Poulsbo OpenCL Driver for Linux (running on atom)
                  SGX535

                  Comment


                  • #10
                    Originally posted by uid313 View Post
                    Does any software applications on Linux support GPGPU or OpenCL?
                    Some BOINC projects already support OpenCL on linux; see for example MilkyWay@home.

                    Comment


                    • #11
                      Originally posted by droidhacker View Post
                      Not really, because that is strictly restricted to the blobs. You might find yourself a few corner-case users, but certainly not widespread deployment. Why would anyone build software depending on openCL if they can't trust that their customers will be able to use it?

                      In other words, it MUST be supported by both AMD and Intel **open source** drivers, AND have a solid CPU fallback, before software developers can trust in its availability.
                      It does not have to be supported by both AMD and Intel drivers.

                      We programmers can make the program so it can check if there is OpenCL support and if there is not use a different algorithm, function(s).
                      We don't choose between CPU threads and OpenCL. We can make the programs so it can choose when starting up what to choose by including both options in the program.

                      Comment


                      • #12
                        Originally posted by ssam View Post
                        Blender does support GPU rendering with their Cycles Render Engine. There is work on openCL in gegl (the library that new versions gimp uses for graphics operations), but i am not sure what state it is in. Darktable also has openCL.
                        Gegl supports OpenCL. r600g and clover is very close to being able to handle the Gegl image operations. A few months ago, with some small patches to Gegl to work around missing libclc standard library implementations, I had some of the Gegl operations working with clover and r600g.

                        Comment


                        • #13
                          Originally posted by tstellar View Post
                          Gegl supports OpenCL. r600g and clover is very close to being able to handle the Gegl image operations. A few months ago, with some small patches to Gegl to work around missing libclc standard library implementations, I had some of the Gegl operations working with clover and r600g.
                          Thomas Stellard, i am involved in project that maybe ambitious and biggest OpenCL kernel ever exist, 3D raytracer Blender Cycles, and have very bad experience with proprietary AMD OpenCL realisation. For now, AMD compiler just eat enormous RAM (32+GB) and still puke on correct code. We have contacts with AMD driver team, and last owrds they aware and give up, suggesting to cut kernel size. My current work will add even more code to it to get more features, making code 2x large or more. Any chance you can get Clover to stage when it will "eat" such huge kernels w/o issues, as NVidia do? Unfortunately, it use 2D images and other builtings and i cannot try to run it as this stage, even when cut code to minimal. My expectations that GCN have full general CPU stack/call support, and can easily avoid old "flatten" architecture, that really can not unroll complex code graph to internal VLIW form. Is it correct? Just in case, for now must say that Clover is only real hope to run Blender Cycles on AMD hardware.

                          Comment


                          • #14
                            An open source CPU driver for OpenCL would be a good thing to have first.
                            Don't see why the author seems more enthousiastic about GPU drivers than the LLVM CPU driver.

                            Most people with x86 based CPU's would be able to run it.
                            Can make it run on Linux.
                            Can develop it in conjunction with tests and then the tests with other drivers.
                            App developers can easier get their hands on an OpenCL driver this way.

                            Comment


                            • #15
                              Originally posted by ssam View Post
                              i think right now it makes more sense for developers to invest time in openMP if they want to target a wide audience. dual cores are now standard on laptops and desktops, and quad and oct are not rare. Often adding just a few prama statements to the loops that do most of the processing can give big speed ups. OpenCL (and CUDA) only work on a smaller subset of algorithms, and are more effort to program and debug (though if you have a problem that suits them you can get huge speed ups).

                              I'd also suspect that foss software developers are more likely to be using opensource drivers than typical linux users. They are more likely to have chosen hardware with drivers in mind. they are more likely to be using opensource for philosophical reasons. and they might like to be able to debug kernel crashes.
                              QFT.

                              Not sure how representative I am, but I'm not going to develop on OpenCL until I can run it myself, which means using a stable, full-featured open-source stack. I will not install either Intel's or AMD's blob to run on the cpu, and I hear all the open cpu implementations are rather incomplete.

                              Just like I have OpenMP, pthreads and other such tech at my fingertips now

                              Comment

                              Working...
                              X