diff options
author | Andreas Grois <andi@grois.info> | 2018-03-17 22:39:45 +0100 |
---|---|---|
committer | Andreas Grois <andi@grois.info> | 2018-03-17 22:39:45 +0100 |
commit | f3f67518d7eb74c868b523851ec482cd2177c3ce (patch) | |
tree | af2a9203a1f04196da903608945607079ae79f73 | |
parent | c2018354129a4a6eff1649eaba4d99756b537ed3 (diff) |
Adjust default workgroup sizes to better match recommended values.
AMD recommends a local workgroup size of 256.
-rw-r--r-- | BuddhaTest/include/Helpers.h | 8 | ||||
-rw-r--r-- | BuddhaTest/src/Helpers.cpp | 10 |
2 files changed, 9 insertions, 9 deletions
diff --git a/BuddhaTest/include/Helpers.h b/BuddhaTest/include/Helpers.h index a585b88..d89c97e 100644 --- a/BuddhaTest/include/Helpers.h +++ b/BuddhaTest/include/Helpers.h @@ -38,12 +38,12 @@ namespace Helpers unsigned int orbitLengthGreen = 100; unsigned int orbitLengthBlue = 1000; - unsigned int localWorkgroupSizeX = 1024; - unsigned int localWorkgroupSizeY = 1; + unsigned int localWorkgroupSizeX = 16; + unsigned int localWorkgroupSizeY = 16; unsigned int localWorkgroupSizeZ = 1; - unsigned int globalWorkGroupSizeX = 1024; - unsigned int globalWorkGroupSizeY = 1; + unsigned int globalWorkGroupSizeX = 64; + unsigned int globalWorkGroupSizeY = 64; unsigned int globalWorkGroupSizeZ = 1; unsigned int targetFrameRate = 60; diff --git a/BuddhaTest/src/Helpers.cpp b/BuddhaTest/src/Helpers.cpp index ed895c4..5385866 100644 --- a/BuddhaTest/src/Helpers.cpp +++ b/BuddhaTest/src/Helpers.cpp @@ -356,12 +356,12 @@ namespace Helpers "--orbitLengthRed [integer] : Maximum number of iterations for escaping orbits to color red. 10 by default." << std::endl << "--orbitLengthGreen [integer] : Maximum number of iterations for escaping orbits to color green. 100 by default." << std::endl << "--orbitLengthBlue [integer] : Maximum number of iterations for escaping orbits to color blue. 1000 by default." << std::endl << - "--localWorkgroupSizeX [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default is 1024. Values up to 1024 are guaranteed to work." << std::endl << - "--localWorkgroupSizeY [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default is 1. Values up to 1024 are guaranteed to work." << std::endl << - "--localWorkgroupSizeZ [integer] : How \"parallel\" the computation should be. Maximum possible value depends on GPU and drivers. The default of 1. Values up to 1024 are guaranteed to work." << std::endl << + "--localWorkgroupSizeX [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default is 16. Values up to 1024 are guaranteed to work." << std::endl << + "--localWorkgroupSizeY [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default is 16. Values up to 1024 are guaranteed to work." << std::endl << + "--localWorkgroupSizeZ [integer] : How \"parallel\" the computation should be. Maximum possible and optimal value depends on GPU and drivers. The default of 1. Values up to 64 are guaranteed to work." << std::endl << "\tNOTE: There's also a limit on the product of the three local workgroup sizes, for which a number smaller or equal to 1024 is guaranteed to work. Higher numbers might work and run faster. Feel free to experiment." << std::endl << - "--globalWorkgroupSizeX [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1024." << std::endl << - "--globalWorkgroupSizeY [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1." << std::endl << + "--globalWorkgroupSizeX [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 64." << std::endl << + "--globalWorkgroupSizeY [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 64." << std::endl << "--globalWorkgroupSizeZ [integer] : How often the local work group should be invoked per frame. Values up to 65535 are guaranteed to work. Default is 1." << std::endl << "--targetFrameRate [integer] : The number of iterations per frame will dynamically adjust to approximately reach this framerate. Default: 60." << std::endl << "--ignoreMaxBufferSize [0,1] : If set to 1, a failed maximum buffer size check is not treated as error. Some graphics drivers report lower values than their absolute limit. Do this on your own risk, though." << std::endl; |