[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Torch on Lua / Ravi
- From: Dibyendu Majumdar <mobile@...>
- Date: Sat, 12 May 2018 13:28:15 +0100
As part of the Ravi-Distro
(https://github.com/dibyendumajumdar/ravi-distro) project I have been
working on buildingTorch packages. I wanted to give a quick update.
* I have made changes to Torch
(https://github.com/dibyendumajumdar/ravi-torch7) to make it work
correctly when compiled using MSVC on Win64. In the process I upgraded
the C code to a recent version in PyTorch. The main issue with the
original version was the assumption that 'long' C type is 64-bits.
This issue appeared to be fixed in PyTorch but not in Lua Torch.
* Secondly I have just migrated the Torch-NN
(https://github.com/dibyendumajumdar/ravi-torch7-nn) package from FFi
to Lua C api. This became necessary as the luaffi project's code
generation on Win64 is not robust in terms of Win64 exception
management. Basically JIT code on Win64 needs to inform the OS about
the stack - if this is not done, when Lua does a longjmp, the program
attempts to do a stack unwind and corrupts the stack. This is an
ongoing issue with LLVM code generation on Win64 too. LuaJIT appears
to handle this correctly.
Migrating to Lua C api is also better for longer term maintenance.
* I am also in the process of migrating the Torch-Cephes package from
FFI to Lua C api.
Torch is a great asset for Lua and I feel we cannot let it die - so
please join the effort if you want to see Torch maintained for Lua.
Sadly PyTorch is diverging now - the Torch-NN api is for example
deemed 'legacy'. While I am trying to ensure that the underlying C
libraries are at the least upgraded for Torch - this is going to be
increasingly difficult if PyTorch starts to change the apis.