Reduce the number of OpenCL kernel compilations

Discussion related to the Engine functionality, implementations and API.
User avatar
lacilaci
Donor
Posts: 1856
Joined: Fri May 04, 2018 5:16 am

Re: What about (pre-)compiling in background when using BlendLuxCore?

Post by lacilaci » Thu Jan 02, 2020 11:37 am

Dade wrote:
Thu Jan 02, 2020 11:22 am
lacilaci wrote:
Thu Jan 02, 2020 5:38 am
Make cpu rendering so fast no one cares about opencl or gpu rendering, problem solved :lol:
My RTX 2070 Super is "only" 2 times faster than my AMD 3900X. It is a huge difference compared my old PC where the GPU was several time faster than the CPU (AMD 290X Vs i7 3930K).

AMD/Intel need to put out a competitive GPU with NVIDIA: GPUs development is becoming more and more stagnant. It is the same situation of CPUs a couple of years ago.
lacilaci wrote:
Thu Jan 02, 2020 5:38 am
or.... optix :D
This thread is about CUDA support under disguise: being able to compile the GPU kernel only once is one of the requirement to be able to support CUDA. But it is a long way.
Ah, I see you upgraded finaly :D

I do believe gpu's might become more and more attractive as Vram capacities grow but corona is kinda proving that you can do a lot with cpus and very fast.

compilation isn't as big of an issue for a still frame, but i did some animation tests and when you want to render frame for 30 seconds total and 7 seconds are just compilation and session init. then you have a problem.

In comparison, cycles on optix compiles once (the first time you run new blender installation - if cycles was changed in some way) then it just starts, on top of that, changing any parameter is instant so you can tweak materials while viewport is rendering in realtime. You can do that with luxcore but only if you use cpu(slow) if you use gpu/opencl blender hangs until luxcore updates everything. This situation makes small tweaks on subtle material effects like low roughness variation extremely difficult as you can't see anything until: A. cpu clears up enough B: gpu starts rendering.

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Thu Jan 02, 2020 4:16 pm

Enabling/disabling camera clipping and/or OculusRift barrel doesn't require OpenCL compilation anymore (removed PARAM_CAMERA_ENABLE_CLIPPING_PLANE and PARAM_CAMERA_ENABLE_OCULUSRIFT_BARREL)
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Sun Jan 05, 2020 3:00 pm

Changing any pixel filter related parameter doesn't require OpenCL compilation anymore (removed all PARAM_IMAGE_FILTER_*).
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Tue Jan 07, 2020 3:02 pm

Changing camera type doesn't require OpenCL compilation anymore (removed PARAM_CAMERA_TYPE)
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Tue Jan 07, 2020 4:08 pm

Changing any image map related settings doesn't require OpenCL compilation anymore (removed all PARAM_HAS_IMAGEMAPS_*)
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Sun Jan 12, 2020 12:18 pm

Changing the number of light groups used doesn't require OpenCL compilation anymore (removed PARAM_FILM_RADIANCE_GROUP_*)
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Wed Jan 15, 2020 11:40 am

Enabling/disabling BCD denoiser doesn't require OpenCL compilation anymore (removed PARAM_FILM_DENOISER).
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 3938
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: Reduce the number of OpenCL kernel compilations

Post by Dade » Mon Jan 20, 2020 12:53 pm

Rework of OpenCL samplers code to not require OpenCL compilation anymore when changing sampler (removed PARAM_SAMPLER_*)
Support LuxCoreRender project with salts and bounties

kintuX
Posts: 527
Joined: Wed Jan 10, 2018 2:37 am

Re: Reduce the number of OpenCL kernel compilations

Post by kintuX » Mon Jan 20, 2020 1:27 pm

Dade wrote:
Mon Jan 20, 2020 12:53 pm
Rework of OpenCL samplers code to not require OpenCL compilation anymore when changing sampler (removed PARAM_SAMPLER_*)
Could this be the reason for the --- FATAL ERROR RUNNING CMAKE --- :?
cuz I notice "sampler" in most of the lines...
here is just an ending of the console output:

Code: Select all

...
...
    c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\renderconfig.cpp) [C:\luxcorerender\WindowsCompile\B
       uild_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\renderconfig.cpp) [C:\luxcorerender\
       WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C3646: 'cameraFilmWid
       th': unknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\l
       uxcorerender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C3646: 'tileStartX':
       unknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcor
       erender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C3646: 'tileWidth': u
       nknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcore
       render\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C3646: 'tilePass': un
       known override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorer
       ender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]

    0 Warning(s)
    1124 Error(s)

Time Elapsed 00:01:19.69
--- FATAL ERROR RUNNING CMAKE ---

acasta69
Developer
Posts: 256
Joined: Tue Jan 09, 2018 3:45 pm

Re: Reduce the number of OpenCL kernel compilations

Post by acasta69 » Mon Jan 20, 2020 2:55 pm

kintuX wrote:
Mon Jan 20, 2020 1:27 pm
Could this be the reason for the --- FATAL ERROR RUNNING CMAKE --- :?
cuz I notice "sampler" in most of the lines...
here is just an ending of the console output:

Code: Select all

...
...
    c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\renderconfig.cpp) [C:\luxcorerender\WindowsCompile\B
       uild_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\renderconfig.cpp) [C:\luxcorerender\
       WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C3646: 'cameraFilmWid
       th': unknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\l
       uxcorerender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(114): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C3646: 'tileStartX':
       unknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcor
       erender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(115): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C3646: 'tileWidth': u
       nknown override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcore
       render\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(116): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C3646: 'tilePass': un
       known override specifier (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorer
       ender\WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2059: syntax error:
       ',' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender\WindowsCompile\
       Build_CMake\LuxCore\src\slg\slg-core.vcxproj]
         c:\luxcorerender\windowscompile\build_cmake\luxcore\src\slg\sampler_types.cl(117): error C2238: unexpected tok
       en(s) preceding ';' (compiling source file C:\luxcorerender\LuxCore\src\slg\rendersession.cpp) [C:\luxcorerender
       \WindowsCompile\Build_CMake\LuxCore\src\slg\slg-core.vcxproj]

    0 Warning(s)
    1124 Error(s)

Time Elapsed 00:01:19.69
--- FATAL ERROR RUNNING CMAKE ---
This was a Windows-only problem and should now be fixed.
Support LuxCoreRender project with salts and bounties

Windows 10 64 bits, i7-4770 3.4 GHz, RAM 16 GB, GTX 970 4GB v382.05

Post Reply