Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libtorch #1

Open
liuly0322 opened this issue Jan 4, 2025 · 2 comments
Open

libtorch #1

liuly0322 opened this issue Jan 4, 2025 · 2 comments

Comments

@liuly0322
Copy link

试了一下 libtorch,目前做了一个能调用 libtorch 的 demo(https://github.com/liuly0322/tch-mbt),能获取几个随机数并传回 MoonBit 打印,简单来说就是 FFI 传入 bytes 传回 bytes 没问题了,理论上其他的 libtorch 功能就也能用。

目前主要问题是 native FFI 还不能被外部调用,也就是 moonbitlang/x/fs 在 native 后端也是不工作的,所以还是不好封装成一个库,只能暂时作为一个项目模板(可能类似 pnpm create 的感觉)。

所以想麻烦确认一下:

  1. 从作为项目模板的角度,是否合适我认领该任务,然后继续做一个比如能推理的 demo?
  2. Native 后端的外部调用支持情况

cc @tonyfettes

@tonyfettes
Copy link

用 bytes 拷贝的话会有内存上面的问题么?libtorch 里面的 tensor 内含智能指针,我猜测 libtorch 里面的引用计数不会考虑到 moonbit 里面持有的对象,可能会出现 use after free 的情况。但是如果考虑到引用计数相关代码只会在 ffi 里面运行,所以如果维护好应该是 OK 的。你跑一下 address sanitizer 看看,没问题就行。

  1. 作为项目模板的话我觉得是 OK 的,就是文档需要稍微写得清楚一点指导用户怎么 setup。有 demo 的话是很 nice 的,可以做一下 iris,没问题了的话做一下 mnist 。
  2. 这个问题还挺复杂的,我们下周会讨论一下。

@liuly0322
Copy link
Author

用 bytes 拷贝的话会有内存上面的问题么?

bytes 拷贝到 moonbit_make_bytes 新生成的空间内,原来的 tensor/... 可以被回收,测了一下 asan 没问题。

感谢回复,我继续做了~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants