{"id":1100,"date":"2026-03-27T15:16:37","date_gmt":"2026-03-27T22:16:37","guid":{"rendered":"http:\/\/fx-td.com\/houdiniandchill\/?p=1100"},"modified":"2026-03-27T15:21:25","modified_gmt":"2026-03-27T22:21:25","slug":"archived-post-by-mysterypancake-9","status":"publish","type":"post","link":"http:\/\/fx-td.com\/houdiniandchill\/2026\/03\/27\/archived-post-by-mysterypancake-9\/","title":{"rendered":"Archived post by mysterypancake"},"content":{"rendered":"<div class=\"postie-post\">\n<p class=\"\">i put some info about worksets in this section <a href=\"https:\/\/github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#worksets\">github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#worksets<\/a><\/p>\n<p class=\"\">the vellum thing above also uses worksets\/graph color<\/p>\n<p class=\"\">there&#8217;s a few things that can be changed before running the kernel one is the number of workitems by using worksets as Jake said &#8220;`cpp \/\/ In VEX, runs the kernel 1 time with at least 6 workitems i[]@offsets = {0}; \/\/ this doesn&#8217;t affect any IDs but it gets passed as a kernel argument I[]@sizes = {6}; &#8220;` &#8220;`cpp \/\/ In OpenCL, the offset and size is passed from the VEX array \/\/ Note get_global_id(0) still starts at 0 even with multiple worksets kernel void kernelName(     int color_offset, \/\/ offset number from i[]@offsets     int color_size, \/\/ size number from i[]@sizes (not rounded up)     &#8230; ) {     &#8230; } &#8220;` the other is the [local workgroup size](<a href=\"https:\/\/github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#changing-the-local-workgroup-size\">github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#changing-the-local-workgroup-size<\/a>) &#8220;`cpp \/\/ Force the local workgroup size to 48 __attribute__((reqd_work_group_size(48, 1, 1))) @KERNEL {      \/\/ This should print &#8220;Local size = 48&#8221;      printf(&#8220;Local size = %d&#8221;, get_local_size(0)); } &#8220;`<\/p>\n<p class=\"\">The number of workitems it gives you always rounds up based on the local workgroup size<\/p>\n<p class=\"\">so if you did `i@[]sizes = {4}` but `get_local_size(0)` was 12, it gives you 12 workitems instead<\/p>\n<p class=\"\">this usually leads to [extra workitems you need to skip over](<a href=\"https:\/\/github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#bounds-checking\">github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#bounds-checking<\/a>)<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>i put some info about worksets in this section github.com\/MysteryPancake\/Houdini-OpenCL?tab=readme-ov-file#worksets the vellum thing above also uses worksets\/graph color there&#8217;s a few things that can be changed before running the kernel one is the number of workitems by using worksets as Jake said &#8220;`cpp \/\/ In VEX, runs the kernel 1 time with at least 6 &hellip; <a href=\"http:\/\/fx-td.com\/houdiniandchill\/2026\/03\/27\/archived-post-by-mysterypancake-9\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Archived post by mysterypancake<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1100"}],"collection":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/comments?post=1100"}],"version-history":[{"count":0,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1100\/revisions"}],"wp:attachment":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/media?parent=1100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/categories?post=1100"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/tags?post=1100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}