{"action":"created","issue":{"url":"https://api.github.com/repos/halide/Halide/issues/1465","repository_url":"https://api.github.com/repos/halide/Halide","labels_url":"https://api.github.com/repos/halide/Halide/issues/1465/labels{/name}","comments_url":"https://api.github.com/repos/halide/Halide/issues/1465/comments","events_url":"https://api.github.com/repos/halide/Halide/issues/1465/events","html_url":"https://github.com/halide/Halide/pull/1465","id":172199686,"number":1465,"title":"Hexagon sim parallel","user":{"login":"pranavb-ca","id":16598810,"avatar_url":"https://avatars.githubusercontent.com/u/16598810?v=3","gravatar_id":"","url":"https://api.github.com/users/pranavb-ca","html_url":"https://github.com/pranavb-ca","followers_url":"https://api.github.com/users/pranavb-ca/followers","following_url":"https://api.github.com/users/pranavb-ca/following{/other_user}","gists_url":"https://api.github.com/users/pranavb-ca/gists{/gist_id}","starred_url":"https://api.github.com/users/pranavb-ca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pranavb-ca/subscriptions","organizations_url":"https://api.github.com/users/pranavb-ca/orgs","repos_url":"https://api.github.com/users/pranavb-ca/repos","events_url":"https://api.github.com/users/pranavb-ca/events{/privacy}","received_events_url":"https://api.github.com/users/pranavb-ca/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":20,"created_at":"2016-08-19T19:09:03Z","updated_at":"2016-08-25T23:42:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/halide/Halide/pulls/1465","html_url":"https://github.com/halide/Halide/pull/1465","diff_url":"https://github.com/halide/Halide/pull/1465.diff","patch_url":"https://github.com/halide/Halide/pull/1465.patch"},"body":"This PR is to use the standalone (simulator based) thread library in Hexagon so that the hexagon pipelines that are simulated as opposed to run on the device can do better than sequential execution when a dimension is parallelized.\r\n\r\nOn hexagon, the coupling between a software thread and hardware thread is very tight. For instance, when creating a thread it is required that we specify a hardware thread, by number. thread_create also takes a function to execute on the new thread and dispatches it immediately. Due to such a design it is non-trivial to implement a pool of threads that wait until work is dispatched them. However, this method at least allows us to test that two chunks of a task run in parallel correctly.\r\n@dsharletg @abadams @ronlieb @dpalermo "},"comment":{"url":"https://api.github.com/repos/halide/Halide/issues/comments/242580400","html_url":"https://github.com/halide/Halide/pull/1465#issuecomment-242580400","issue_url":"https://api.github.com/repos/halide/Halide/issues/1465","id":242580400,"user":{"login":"dsharletg","id":7494796,"avatar_url":"https://avatars.githubusercontent.com/u/7494796?v=3","gravatar_id":"","url":"https://api.github.com/users/dsharletg","html_url":"https://github.com/dsharletg","followers_url":"https://api.github.com/users/dsharletg/followers","following_url":"https://api.github.com/users/dsharletg/following{/other_user}","gists_url":"https://api.github.com/users/dsharletg/gists{/gist_id}","starred_url":"https://api.github.com/users/dsharletg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dsharletg/subscriptions","organizations_url":"https://api.github.com/users/dsharletg/orgs","repos_url":"https://api.github.com/users/dsharletg/repos","events_url":"https://api.github.com/users/dsharletg/events{/privacy}","received_events_url":"https://api.github.com/users/dsharletg/received_events","type":"User","site_admin":false},"created_at":"2016-08-25T23:42:23Z","updated_at":"2016-08-25T23:42:23Z","body":"Note that I also changed the atomic from `__sync_add_and_fetch` to `__sync_fetch_and_add`, so that next_id actually means what the name of the variable says it is. So I think it should still be creating threads with thread_no = 1, 2, 3.\r\n\r\nIronically, the camera pipe succeeds with correct results for me on my sim-parallel branch :) (and, it runs in far fewer cycles)."}}
{"actor":{"display_login":"dsharletg"}}