{"action":"opened","issue":{"url":"https://api.github.com/repos/OpenMined/PySyft/issues/439","repository_url":"https://api.github.com/repos/OpenMined/PySyft","labels_url":"https://api.github.com/repos/OpenMined/PySyft/issues/439/labels{/name}","comments_url":"https://api.github.com/repos/OpenMined/PySyft/issues/439/comments","events_url":"https://api.github.com/repos/OpenMined/PySyft/issues/439/events","html_url":"https://github.com/OpenMined/PySyft/issues/439","id":276467526,"number":439,"title":"Implement inline cauchy Functionality in FloatTensor with CPU/GPU Backend Support","user":{"login":"alberduris","id":7073086,"avatar_url":"https://avatars3.githubusercontent.com/u/7073086?v=4","gravatar_id":"","url":"https://api.github.com/users/alberduris","html_url":"https://github.com/alberduris","followers_url":"https://api.github.com/users/alberduris/followers","following_url":"https://api.github.com/users/alberduris/following{/other_user}","gists_url":"https://api.github.com/users/alberduris/gists{/gist_id}","starred_url":"https://api.github.com/users/alberduris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alberduris/subscriptions","organizations_url":"https://api.github.com/users/alberduris/orgs","repos_url":"https://api.github.com/users/alberduris/repos","events_url":"https://api.github.com/users/alberduris/events{/privacy}","received_events_url":"https://api.github.com/users/alberduris/received_events","type":"User","site_admin":false},"labels":[{"id":758584332,"url":"https://api.github.com/repos/OpenMined/PySyft/labels/good%20first%20issue","name":"good first issue","color":"1d76db","default":true},{"id":649919709,"url":"https://api.github.com/repos/OpenMined/PySyft/labels/help%20wanted","name":"help wanted","color":"c2e0c6","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-11-23T20:28:48Z","updated_at":"2017-11-23T20:28:48Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"### User Story: \r\nAs a Data Scientist using PySyft's FloatTensor type, I want to leverage a wide range of methods which use our new Unity backend. For this ticket to be complete, the cauchy_() should be added to our FloatTensor class with the appropriate functionality. Note that the method runs inline, the method called on a tensor returns the tensor on which it is called.\r\n\r\nFurthermore, the function should automatically determine which backend to use (CPU/GPU) based on where the data is located. If the data is located on the CPU, a performant CPU implementation should run but if the data for a given FloatTensor is located on a GPU, it should be run using an HLSL kernel where appropriate. Obviously, if no GPU is available, it should automatically fall back to the CPU implementation.\r\n\r\n### Every Reference You Might Need for this Issue:\r\n\r\n- For a reference on the operation this performs check out [PyTorch](http://pytorch.org/docs/master/tensors.html)'s documentation.\r\n- For a reference on how to program in Unity, check out [this basic tutorial](https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial)\r\n- For a reference on how to write HLSL code, check out [this basic tutorial](http://kylehalladay.com/blog/tutorial/2014/06/27/Compute-Shaders-Are-Nifty.html)\r\n- For a complete tutorial on how to add functions to FloatTensor (step by step guide) see [this Google Document](https://docs.google.com/document/d/1WRd7gGLFN0Awtf86AICYIHtg3gfFWLBa5wYTthsB3i0/edit)\r\n- For a reference on how other functions like this have been implemented check out the functions in [this notebook](https://github.com/OpenMined/OpenMined/blob/master/notebooks/Syft%20Tensor%20Example%20Notebook.ipynb) as well as the corresponding files that made it possible ([SyftController](https://github.com/OpenMined/OpenMined/blob/master/Assets/OpenMined/Network/Controllers/SyftController.cs), [FloatTensor.Ops](https://github.com/OpenMined/OpenMined/blob/master/Assets/OpenMined/Syft/Tensor/FloatTensor.Ops.cs), [FloatTensor.ShaderOps](https://github.com/OpenMined/OpenMined/blob/master/Assets/OpenMined/Syft/Tensor/FloatTensor.ShaderOps.cs), [FloatTensorShaders](https://github.com/OpenMined/OpenMined/blob/master/Assets/OpenMined/Syft/Math/Shaders/FloatTensorShaders.compute), and [FloatTensorTest](https://github.com/OpenMined/OpenMined/blob/master/Assets/OpenMined.Tests/Editor/FloatTensorTest.cs)).\r\n- And of course, please consider our [Contributor Guidelines](https://github.com/OpenMined/Docs/blob/master/contributing/guidelines.md) for all contributions.\r\n### Acceptance Criteria:\r\n\r\n- [ ] an integration test in PySyft demonstrating the correct CPU and GPU operation implemented over a FloatTensor while connected to a Unity backend\r\n- [ ] a Unit Test in OpenMined/OpenMined demonstrating the correct operation on a FloatTensor\r\n- [ ] [inline](http://pytorch.org/docs/master/tensors.html) documentation in the python code. For inspiration on inline documentation, please check out PyTorch's documentation for this operator.\r\n- [ ] Link your Pull Request back to this Issue so that it gets closed appropriately when the PR is merged."}}
{"actor":{"display_login":"alberduris"}}