4 Replies Latest reply on Nov 12, 2015 6:51 AM by tzachi.cohen

    Simple Question

    alexfd7

      Hello everyone, I once again here with many questions kkkk

       

      For each type of video card, I have to download the specific SDK manufacturer to be able to create applications and use the GPU processing units for general purposes.

       

      In my case I have a "AMD Radeon" and an Intel CPU. I already can create applications in C ++ for AMD, because I can also use the CPU intel?

      For that to happen I should not have installed the SDK from intel? Why device version information (intel CPU) is defined as AMD-APP?

       

      Number platforms: 1
      Number devices: 2
      
      
      --------------------------
      Vendor: Advanced Micro Devices, Inc.
      Device: Iceland
      Version: OpenCL 2.0 AMD-APP (1729.3)
      --------------------------
      Vendor: GenuineIntel
      Device: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
      Version: OpenCL 1.2 AMD-APP
      
      
       (1729.3)
      

       

       

      Thanks for listening

        • Re: Simple Question
          Dithermaster

          > For each type of video card, I have to download the specific SDK manufacturer to be able to create applications and use the GPU processing units for general purposes.

           

          That statement is incorrect. A single OpenCL SDK, using the cl.h header supplied by Khronos, can target any OpenCL runtime.

            • Re: Simple Question
              alexfd7

              Hello, thank you for awnser

              Oh really? So let's think of an example, if I have a computer with video cards AMD, NVIDIA, and an Intel CPU. A single SDK would be enough to communicate with all devices?  What is the difference then if I install an SDK X or Y?

                • Re: Simple Question
                  nibal

                  You will get max support and benefits using hardware from a single manufacturer, ie Nvidia, AMD or intel. AMD's opencl can see and use Nvidia cards and Intel CPUs, just not as well as its own. You may run into trouble installing multiple SDKs in a single host, especially if you don't keep track of correct paths, and, in windows, registry entries.

              • Re: Simple Question
                tzachi.cohen

                You need to differentiate between CPU devices and GPU devices.

                AMD and Intel have CPU implementations of OpenCL. Since both companies produce processors that are ISA compatible, AMD OCL CPU implementation can run on Intel CPUs and IIRC, Intel implementation can run on AMD CPUs.

                This is not the case with GPUs. Since invoking a GPU workload is very vendor specific, each vendor GPU implementation can only run on - well  its own GPUs.

                The OpenCL ICD is publishing platforms (e.g. Intel,AMD, Nvidia), an OpenCL context can be comprised out of a single platform. I.e. GPUs from different vendors can't be members of the same cl context.