Comments (6)
The API is fairly simple and should already be Cgo friendly: https://github.com/NVIDIA/libnvidia-container/blob/master/src/nvc.h
I would prefer not to provide official bindings unless we feel that they are really required, as there are potentially many drawbacks (opinionated implementation, additional maintenance, ABI stability...)
from libnvidia-container.
How would those drawbacks be fixed with unofficial bindings or be any different from using this as a C lib?
from libnvidia-container.
Well for example, most Go runtimes already have a dedicated process in place to work around the multithreading-setns issue, so they could just reuse it instead having us hack it in the bindings.
And as I said, maintaining bindings with yet another ABI is a lot of work when (arguably) only one runtime would use it.
from libnvidia-container.
@3XX0 I can see go bindings being useful for k8s device plugins too where as @crosbymichael mentioned we can perform all static checks (potentially) at the device plugin level.
cc @jiayingz
from libnvidia-container.
Like you said the Go threading issues are a problem and I don't think we need to support that.
Some of the functionality with this lib is determining the lib paths, versions, device paths and what devices that need to go into a container. This stuff should be split out so that we can depend on it and make decisions before invoking the runtime. Smaller surface area could help more.
from libnvidia-container.
What do you mean by checks and validation exactly, are you referring to the environment variables NVIDIA_REQUIRE_*
?
As for the API, the calls for GPU information and injection are already split: nvc_*_info
vs nvc_*_mount
.
from libnvidia-container.
Related Issues (20)
- 如何修改drv->devs->path的路径 HOT 1
- Building binaries, not just packages? HOT 2
- seg fault when running bundle with libnvidia-container-tools installed in container HOT 7
- why does nvidia-container-cli load libnvidia-ml via dlopen rather than linking directly? HOT 4
- Fail to start on second run. libs being set to 0 size HOT 2
- libnvidia-container ubuntu22.04/amd64 HOT 4
- libnvidia_container fails to compile with mold HOT 3
- Issue in permissions checking in nvcgo/internal/cgroup/ebpf.go ? HOT 2
- nvidia-container-runtime segfault HOT 2
- sudo yum install -y nvidia-container-toolkit failed - No such device
- nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory
- Warning of Key is stored in legacy trusted.gpg keyring HOT 2
- Unprivileged `nvidia-container-cli --user configure`
- ldconfig-free deployment
- Unable to use more than 5 GPU cards HOT 2
- Building libnvidia-container 1.14.5 builds 1.14.4 HOT 19
- nvidia-container-cli: mount error: failed to add device rules: unable to generate new device filter program from existing programs: unable to create new device filters program: load program: invalid argument: 0: (69) r2 = *(u16 *)(r1 +0)
- Trouble Running NVIDIA GPU Containers on Custom Yocto-Based Distro on HPE Server with NVIDIA A40 GPU HOT 5
- How to mirror this Nvidia libnividia rmp repo with artifactory rpm repo HOT 1
- versions.mk and common.mk use PATCH variable for different things
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libnvidia-container.