3 Replies Latest reply on Jan 18, 2010 10:09 AM by Raistmer

    few programs with single queue - possible?

    Raistmer
      is it possible to use not one but few *.cl files, create few "programs" via clCreateProgramWithSource, each program from each *.cl file, then build these programs for same device and use kernels from all these programs in the same single queue and same single context?
      Will it lead to any performance degradation vs single big cl file with all kernels, if possible?
        • few programs with single queue - possible?
          nou

          of course it is possible. i do not see reason why it should have performance decrease. only difference can be in compilation time.

          • few programs with single queue - possible?
            genaganna

             

            Originally posted by: Raistmer is it possible to use not one but few *.cl files, create few "programs" via clCreateProgramWithSource, each program from each *.cl file, then build these programs for same device and use kernels from all these programs in the same single queue and same single context?

            You can have any number of .cl files, programs and kernels.

            You can create single program from any number of .cl files

            Single program can have any number of kernels.

            Will it lead to any performance degradation vs single big cl file with all kernels, if possible?

            No matter how big your program or cl file.  Only matters how big your kernel because it has to be moved to GPU which might degrades the  performance.   It is very rare that kernel is very big.

            • few programs with single queue - possible?
              Raistmer
              thanks!
              I thought exactly about compilation time when asked about difference in performance.Kernels have to be compiled from text sources, somehow I feel it's not as fast as just load precompiled binary from file...