{"action":"created","issue":{"url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/568","repository_url":"https://api.github.com/repos/ARM-software/ComputeLibrary","labels_url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/568/labels{/name}","comments_url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/568/comments","events_url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/568/events","html_url":"https://github.com/ARM-software/ComputeLibrary/issues/568","id":369966353,"node_id":"MDU6SXNzdWUzNjk5NjYzNTM=","number":568,"title":"Can one CL file be mapped into several different binary file name?","user":{"login":"labsurde","id":2621400,"node_id":"MDQ6VXNlcjI2MjE0MDA=","avatar_url":"https://avatars2.githubusercontent.com/u/2621400?v=4","gravatar_id":"","url":"https://api.github.com/users/labsurde","html_url":"https://github.com/labsurde","followers_url":"https://api.github.com/users/labsurde/followers","following_url":"https://api.github.com/users/labsurde/following{/other_user}","gists_url":"https://api.github.com/users/labsurde/gists{/gist_id}","starred_url":"https://api.github.com/users/labsurde/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/labsurde/subscriptions","organizations_url":"https://api.github.com/users/labsurde/orgs","repos_url":"https://api.github.com/users/labsurde/repos","events_url":"https://api.github.com/users/labsurde/events{/privacy}","received_events_url":"https://api.github.com/users/labsurde/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-10-15T01:21:37Z","updated_at":"2018-10-15T11:12:37Z","closed_at":null,"author_association":"NONE","body":"Hello,\r\n\r\nWe would like to load `*.cl` source files at runtime, save the compiled binaries into specific files, and load the binaries when our app is run next time.\r\nThis feature seems important since we have experienced long compilation delay when we first run a complex model file.\r\nIf we can save and load binaries, we can just load them when our app is run. This, I hope, will improve user experience a lot.\r\n\r\nOne issue I am thinking while looking into ACL code is that current ACL uses only one binary name for one cl source code. (e.g., `fill_border.cl` for cl source code, and `fill_border.clbin` for cl binary file)\r\n`https://github.com/ARM-software/ComputeLibrary/blob/master/src/core/CL/CLKernelLibrary.cpp`, line 904, 52ba29e936b8e711e8acdfe819e36f884d4f3fe1)\r\n\r\nHowever, depending on compilation option, one cl source code can be compiled into many binary files.\r\nFor example, while we run a model, we found that `fill_border.cl` is compiled with the following options and they, I guess, will be compiled into two different binaries.\r\n```\r\n-DBORDER_SIZE_BOTTOM=1 -DBORDER_SIZE_LEFT=0 -DBORDER_SIZE_RIGHT=1 -DBORDER_SIZE_TOP=0 ...\r\n```\r\n```\r\n-DBORDER_SIZE_BOTTOM=0 -DBORDER_SIZE_LEFT=0 -DBORDER_SIZE_RIGHT=10 -DBORDER_SIZE_TOP=0 ...\r\n```\r\n\r\nSo, I wonder how I can load these different binary files with current implementation of `CLKernelLibrary`.\r\nOf course, we can modify ACL for our app but ACL runtime in our platform could be common runtime for many apps. So we would like to use original ACL.\r\n\r\nIf this feature is not available for the current version, would you add this for later version?\r\n\r\nThank you!\r\n"},"comment":{"url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/comments/429809411","html_url":"https://github.com/ARM-software/ComputeLibrary/issues/568#issuecomment-429809411","issue_url":"https://api.github.com/repos/ARM-software/ComputeLibrary/issues/568","id":429809411,"node_id":"MDEyOklzc3VlQ29tbWVudDQyOTgwOTQxMQ==","user":{"login":"GeorgeARM","id":26897801,"node_id":"MDQ6VXNlcjI2ODk3ODAx","avatar_url":"https://avatars1.githubusercontent.com/u/26897801?v=4","gravatar_id":"","url":"https://api.github.com/users/GeorgeARM","html_url":"https://github.com/GeorgeARM","followers_url":"https://api.github.com/users/GeorgeARM/followers","following_url":"https://api.github.com/users/GeorgeARM/following{/other_user}","gists_url":"https://api.github.com/users/GeorgeARM/gists{/gist_id}","starred_url":"https://api.github.com/users/GeorgeARM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GeorgeARM/subscriptions","organizations_url":"https://api.github.com/users/GeorgeARM/orgs","repos_url":"https://api.github.com/users/GeorgeARM/repos","events_url":"https://api.github.com/users/GeorgeARM/events{/privacy}","received_events_url":"https://api.github.com/users/GeorgeARM/received_events","type":"User","site_admin":false},"created_at":"2018-10-15T11:12:37Z","updated_at":"2018-10-15T11:12:37Z","author_association":"NONE","body":"Hello @labsurde,\r\n\r\nYes this is valid and important requirement. We will have a look into adding support for this as soon as possible. Thanks for raising."}}
{"actor":{"display_login":"GeorgeARM"}}