tqchen commented on PR #17927:
URL: https://github.com/apache/tvm/pull/17927#issuecomment-2859152015

   
   ## Benchmark 
   Env CPU: AMD Ryzen 9 7950X 
   
   ```bash
   > python ffi/scripts/benchmark_dlpack.py
   
   -----------------------------
   Benchmark f(x, y, z) overhead
   -----------------------------
   numpy.add                                1.921653747558594e-07 sec/call
   torch.add[cpu]                           6.330013275146484e-07 sec/call
   torch.add[cuda]                          2.330756187438965e-06 sec/call
   tvm.ffi.nop                              3.983736038208008e-07 sec/call
   tvm.ffi.nop+from_dlpack(torch)           4.368019104003906e-06 sec/call
   tvm.ffi.nop+from_dlpack(numpy)           1.1694192886352538e-06 sec/call
   tvm.ffi.nop+from_dlpack(tvm)             1.4580249786376954e-06 sec/call
   tvm.ffi.nop+from_dlpack(torch.utils)     3.2754182815551756e-06 sec/call
   tvm.ffi.nop.autodlpack(torch[cpu])       3.567361831665039e-06 sec/call
   tvm.ffi.nop.autodlpack(torch[cuda])      3.5606861114501952e-06 sec/call
   tvm.ffi.nop.autodlpack(numpy)            1.6696929931640624e-06 sec/call
   -------------------------------
   Benchmark x.__dlpack__ overhead
   -------------------------------
   torch.utils.dlpack.to_dlpack             4.5762062072753906e-07 sec/call
   torch.__dlpack__                         9.840965270996094e-07 sec/call
   numpy.__dlpack__                         5.011558532714844e-08 sec/call
   tvm.__dlpack__                           1.5852451324462892e-07 sec/call
   ---------------------------------------------------
   Benchmark x.__dlpack__(max_version=(1,1)) overhead
   ---------------------------------------------------
   torch.__dlpack__(max_version=(1,1))      Tensor.__dlpack__() got an 
unexpected keyword argument 'max_version'
   numpy.__dlpack__(max_version=(1,1))      6.172657012939454e-08 sec/call
   tvm.__dlpack__(max_version=(1,1))        1.720428466796875e-07 sec/call
   
   ## Discussions
   - First, we can see that the overall FFI overhead of python c++ is roughly 
at 0.2us -3us level
      - Notably, each torch.add eager call in cuda is around 2.4 us
   - AutoDLPack as of now can get to about 3.6us for a call of f(x, y, z)  that 
needs three import calls
   - One can observe that `torch.__dlpack__` overhead is larger than 
`numpy.__dlpack__`
   - AutoDLPack from numpy arguments have about 1.6us overhead
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to