{"push_id":2643485807,"size":8,"distinct_size":8,"ref":"refs/heads/master","head":"f6265e0a1a6b0e8c05c751220dba6f13021a8a51","before":"7e2df7c4a68062ad47dd5ea260cfd8cf1be6c674","commits":[{"sha":"bb78adb0a18a58c0bf77d61ce229bc43cef19d95","author":{"name":"nicolasvasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Exit loop upon SIG_INT","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/bb78adb0a18a58c0bf77d61ce229bc43cef19d95"},{"sha":"7a11fca8dd14da0573cfbe7284156c47294f0820","author":{"name":"nicolasvasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Make exported classes local to the module\n\nThis will be required to have 2 sets of bindings living side by side\nand avoid creating type conflicts in pybind.","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/7a11fca8dd14da0573cfbe7284156c47294f0820"},{"sha":"018d3b92c53d933791532b575bfb230431f349df","author":{"name":"Nicolas Vasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Add at::Tensor -> TensorInfo\n\nThis commit adds a conversion from ATen tensor directly to TensorInfo.\nPreviously one needed to go through multiple conversions.\nThese conversions were expected to be fully memoized by keeping a reference\nto the executor. However the PyTorch autograd function is stateless and we\ncannot rely on this assumption.\n\nTherefore we reduce the overhead by removing all the unnecessary conversions.\nNotice that a we need to retrieve the dlpack type from the ATen type and\nthis function is not exposed on the ATen side so we currently copy the ATen\ncode. Once the function is exposed and shipped in the proper conda package\nwe can get rid of our copy.","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/018d3b92c53d933791532b575bfb230431f349df"},{"sha":"f0edebef2f51cd569b60647e748af06ec83b4647","author":{"name":"nicolasvasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Proposed PyTorch integration\n\nThis commit proposes a set of **measured** low-overhead abstractions that\nlive side-by-side with the current pybind.\nThe idea is to show by example what a low-overhead abstraction for\nPyTorch should look like and shift to that in a subsequent PR.\n\nIn particular the changes to the bindings include:\n1. implement a compilation cache that performs memoization by hashing\nTensorInfo on each call. This is required because PyTorch autograd functions\nare stateless and we need to allocate outputs ourselves;\n2. implement an explicit Tuner that takes a configuration object, preset to\ngood default values to avoid making it too easy to call the tuner in single\nthreaded mode;\n3. implement an explicit interface to the compilation cache and allow\nloading the topK options;\n\nOn the python side, this commit creates:\n1. a TcBuilder class which makes a Tc operation usable by:\n   a. providing an entry point to the compilation cache on which we can\n      compile, alloc_outputs and run/unchecked_run  (we can later\n      implement an idiom which just call directly into the compiled code if\n      needed);\n   b. providing an abstraction with or without reinforcement to an underlying\n      tuner object backed by a proto file;\n   c. being passed as the first argument to a TcFunction which implements\n      torch.autograd.Function\n2. a TcFunction which extends torch.autograd.Function and can take multiple TC\nnames to run in sequence for forward and backward. In the current impl there is\na potential synchronization problem that I want to be able to reproduce in the\nfuture. This issue goes away in the next commit once output allocation is merged\nat the C++ level.\n\nThis commit does a first functional implementation, the following commit\nwill remove extra overhead by merging the output allocation (which also seemd to\nremove the synchronization issue that I do not know how to solve yet).","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/f0edebef2f51cd569b60647e748af06ec83b4647"},{"sha":"32cc5cb84f21254560381b73bc003ba0c20cd98f","author":{"name":"Nicolas Vasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Reduce TC + PyTorch overhead\n\nThis commit reduce overheads by avoiding a 2-step allocOutputs and run crossing\nthe Python/C++ boundary. This also removes the synchronization issue mentioned\nin the previous commit but for which we will still need to find the root cause.\n\n```\npython ./test_python/pytorch_example.py\nraw unchecked_run naive options  Total CPU time to launch kernel: min 19us, p50 29us, p90 34us, max 2204us\nraw unchecked_run naive options  Total CPU launch + GPU kernel time: min 365us, p50 374us, p90 379us, max 2562us\nTune with cache @ /tmp/d17dd046-de20-40ce-b52d-79cd3286fcb4\nNote that if you pass a fixed filename, you can reinforce an existing tuning state\nIteration 0     Jobs(Compiled, Evaluated)/total  (25, 25)/25   (best/median/worst)us: 346/18111/196621\nIteration 1     Jobs(Compiled, Evaluated)/total  (25, 25)/25   (best/median/worst)us: 346/905/1621\nIteration 2     Jobs(Compiled, Evaluated)/total  (25, 25)/25   (best/median/worst)us: 335/739/1616\nraw unchecked_run tuned options  Total CPU time to launch kernel: min 17us, p50 21us, p90 23us, max 1030us\nraw unchecked_run tuned options  Total CPU launch + GPU kernel time: min 350us, p50 354us, p90 360us, max 1365us\nTcBuilder unchecked_run  Total CPU time to launch kernel: min 19us, p50 22us, p90 35us, max 2439us\nTcBuilder unchecked_run  Total CPU launch + GPU kernel time: min 303us, p50 307us, p90 320us, max 2712us\nTcFunction forward unchecked_run         Total CPU time to launch kernel: min 41us, p50 62us, p90 70us, max 857164us\nTcFunction forward unchecked_run         Total CPU launch + GPU kernel time: min 317us, p50 338us, p90 351us, max 857281us\nTcFunction backward unchecked_run        Total CPU time to launch kernel: min 344us, p50 388us, p90 412us, max 883us\nTcFunction backward unchecked_run        Total CPU launch + GPU kernel time: min 1321us, p50 1351us, p90 1371us, max 1849us\nMultiTcBuilder unchecked_run     Total CPU time to launch kernel: min 14us, p50 22us, p90 25us, max 1863us\nMultiTcBuilder unchecked_run     Total CPU launch + GPU kernel time: min 298us, p50 305us, p90 310us, max 2136us\nMultiTcFunction forward unchecked_run    Total CPU time to launch kernel: min 35us, p50 58us, p90 67us, max 506382us\nMultiTcFunction forward unchecked_run    Total CPU launch + GPU kernel time: min 197us, p50 334us, p90 342us, max 506619us\nMultiTcFunction backward unchecked_run   Total CPU time to launch kernel: min 275us, p50 364us, p90 383us, max 438us\nMultiTcFunction backward unchecked_run   Total CPU launch + GPU kernel time: min 1265us, p50 1333us, p90 1350us, max 1379us\n```","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/32cc5cb84f21254560381b73bc003ba0c20cd98f"},{"sha":"bfde5eac25b00d9eb5a823f6269188ffed02f38d","author":{"name":"nicolasvasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Move pybind example","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/bfde5eac25b00d9eb5a823f6269188ffed02f38d"},{"sha":"11b0c315ce9238334125e642c3f27f0ff812f412","author":{"name":"nicolasvasilache","email":"05af740c82c817c8c65f9e07d08a1b42ef386036@gmail.com"},"message":"Add simpler pybind entry point to TC\n\nIf the python user can memoize the executor resulting from\ncompilation then this API should be preferred. Otherwise,\nlike in PyTorch autograd functions, the compilation cache\nshould be used.","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/11b0c315ce9238334125e642c3f27f0ff812f412"},{"sha":"f6265e0a1a6b0e8c05c751220dba6f13021a8a51","author":{"name":"Nicolas Vasilache","email":"0cfabc0115edb7aa05d65941e5a1310beee103b3@users.noreply.github.com"},"message":"Merge pull request #495 from nicolasvasilache/pr/redo-pytorch\n\nMore generic and lightweight PyTorch integration","distinct":true,"url":"https://api.github.com/repos/facebookresearch/TensorComprehensions/commits/f6265e0a1a6b0e8c05c751220dba6f13021a8a51"}]}
{"actor":{"display_login":"nicolasvasilache"}}