{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/18839","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/18839/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/18839/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/18839/events","html_url":"https://github.com/dotnet/coreclr/pull/18839","id":339622919,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAwMjMyMTU1","number":18839,"title":"[WIP] Add SoA raytracer as a CQ test for Intel hardware intrinsic","user":{"login":"fiigii","id":1263030,"node_id":"MDQ6VXNlcjEyNjMwMzA=","avatar_url":"https://avatars1.githubusercontent.com/u/1263030?v=4","gravatar_id":"","url":"https://api.github.com/users/fiigii","html_url":"https://github.com/fiigii","followers_url":"https://api.github.com/users/fiigii/followers","following_url":"https://api.github.com/users/fiigii/following{/other_user}","gists_url":"https://api.github.com/users/fiigii/gists{/gist_id}","starred_url":"https://api.github.com/users/fiigii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiigii/subscriptions","organizations_url":"https://api.github.com/users/fiigii/orgs","repos_url":"https://api.github.com/users/fiigii/repos","events_url":"https://api.github.com/users/fiigii/events{/privacy}","received_events_url":"https://api.github.com/users/fiigii/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-07-09T22:02:49Z","updated_at":"2018-07-09T22:13:35Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/18839","html_url":"https://github.com/dotnet/coreclr/pull/18839","diff_url":"https://github.com/dotnet/coreclr/pull/18839.diff","patch_url":"https://github.com/dotnet/coreclr/pull/18839.patch"},"body":"This PR ports the current SIMD benchmark [RayTracer](https://github.com/dotnet/coreclr/tree/master/tests/src/JIT/Performance/CodeQuality/SIMD/RayTracer) ( using `Vector3`) to a SoA algorithm using AVX/AVX2 intrinsics. The new benchmark keeps the same shading approach of the original raytracer as much as possible, so they can generate the same images and be compared directly.\r\n\r\nThe rough VTune characteristic shows the SoA raytracer is 2.4x faster than the AoS raytracer on one large-image generations, and this result almost matches the theoretical expectation.\r\n\r\nThe Stopwatch (the profiling manner of AoS raytracer) shows the SoA raytracer is 4.6x faster than the original AoS raytracer (in Vector3) on multi-image generations (76.9FPS vs 16.6FPS on my machine)."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/403637181","html_url":"https://github.com/dotnet/coreclr/pull/18839#issuecomment-403637181","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/18839","id":403637181,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMzYzNzE4MQ==","user":{"login":"fiigii","id":1263030,"node_id":"MDQ6VXNlcjEyNjMwMzA=","avatar_url":"https://avatars1.githubusercontent.com/u/1263030?v=4","gravatar_id":"","url":"https://api.github.com/users/fiigii","html_url":"https://github.com/fiigii","followers_url":"https://api.github.com/users/fiigii/followers","following_url":"https://api.github.com/users/fiigii/following{/other_user}","gists_url":"https://api.github.com/users/fiigii/gists{/gist_id}","starred_url":"https://api.github.com/users/fiigii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiigii/subscriptions","organizations_url":"https://api.github.com/users/fiigii/orgs","repos_url":"https://api.github.com/users/fiigii/repos","events_url":"https://api.github.com/users/fiigii/events{/privacy}","received_events_url":"https://api.github.com/users/fiigii/received_events","type":"User","site_admin":false},"created_at":"2018-07-09T22:13:34Z","updated_at":"2018-07-09T22:13:34Z","author_association":"COLLABORATOR","body":"I marked the PR with \"WIP\" because the program still has a few issues:\r\n1. the output image has “sawtooth” on object’s edges (see the image below), investigate in progress\r\n2. wrote a brief VectorMath library that provides vectorized Exp(), Log(), and Pow() functions needed by the SoA raytracer, but the result precision looks not good (@tannergooding could you help?)\r\n3. this program crashes with the current master branch of CoreCLR but works with 2.1 RC.\r\n4. the build configuration `PacketTracer.csproj` is incorrect (`The type or namespace name 'Vector256<>' could not be found`), @eerhardt could you help?\r\n\r\nThe output image:\r\n![pt](https://user-images.githubusercontent.com/1263030/42478706-8e4e696c-838a-11e8-8d8a-437d80c26730.png)"}}
{"actor":{"display_login":"fiigii"}}