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

/tmp/cuda-control/src/loader.c:865 can't find library libcuda.so by use image thomassong/gpu-manager:master #150

Open
syy532960478 opened this issue Mar 28, 2022 · 17 comments

Comments

@syy532960478
Copy link

I get an error when I start multiple GPU-resource pods simultaneously (concurrently) using vcuda, error as follow:
1648436775(1)

I see image thomassong/gpu-manager:master will slove this problem, but it doesn't work for me. How to slove this problem??

@fengyu10
Copy link

我也遇到这种情况,在一个node节点上,同时创建多个pod会出现这种情况;一次启动一个pod不会出现这种情况,请问你有解决嘛?
image

@syy532960478
Copy link
Author

我也遇到这种情况,在一个node节点上,同时创建多个pod会出现这种情况;一次启动一个pod不会出现这种情况,请问你有解决嘛? image

没有,你用的哪个版本,我看以往issue中说thomassong/gpu-manager:master这个镜像可以解决,但是我用了之后还是有问题。

@fengyu10
Copy link

我也遇到这种情况,在一个node节点上,同时创建多个pod会出现这种情况;一次启动一个pod不会出现这种情况,请问你有解决嘛? image

没有,你用的哪个版本,我看以往issue中说thomassong/gpu-manager:master这个镜像可以解决,但是我用了之后还是有问题。

我也是master代码编译的镜像,我测试多次 每次启动一个pod是没有问题,一次性启动多个pod在一个node上就会出现这个错误。你是启动一个pod都有这个问题吗?

@syy532960478
Copy link
Author

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

@fengyu10
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

@syy532960478
Copy link
Author

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

@fengyu10
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。
如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

@syy532960478
Copy link
Author

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。 如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

针对k8s添加过滤器,可以详细说明一下如何添加么,谢啦

@phoenixwu0229
Copy link

老哥,你知道这个问题的根因是哪部分代码有问题吗?

@phoenixwu0229
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。 如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

老哥,你知道这个问题的根因是哪部分代码有问题吗?

@fengyu10
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。 如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

老哥,你知道这个问题的根因是哪部分代码有问题吗?

https://github.com/tkestack/gpu-manager/blob/master/pkg/services/allocator/nvidia/allocator.go 中 663行 Allocate 方法
这个方法里面会遍历pods获取没有分配vgpu的pod。
这种情况会存在一个问题,如果同时存在多个pod没有分配vgpu,这种情况下找的pod会出现错误。
当前pod1请求了接口,反而是找到pod2,这种情况下信息就是错误的。

https://github.com/tkestack/gpu-manager/blob/master/pkg/server/server.go 中 Allocate 方法打印返回值,你会发现返回值中一个hostpath属性,值是跟pod路径有关联的。如果上一步查找出来的pod是错误的,那么这个hostpath属性值也是错误的。这是为啥同时启动多个pod会出现错误原因

上述是我个人的分析,仅供参考

@fengyu10
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。 如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

老哥,你知道这个问题的根因是哪部分代码有问题吗?

https://github.com/tkestack/gpu-manager/blob/master/pkg/services/allocator/nvidia/allocator.go 中 663行 Allocate 方法 这个方法里面会遍历pods获取没有分配vgpu的pod。 这种情况会存在一个问题,如果同时存在多个pod没有分配vgpu,这种情况下找的pod会出现错误。 当前pod1请求了接口,反而是找到pod2,这种情况下信息就是错误的。

https://github.com/tkestack/gpu-manager/blob/master/pkg/server/server.go 中 Allocate 方法打印返回值,你会发现返回值中一个hostpath属性,值是跟pod路径有关联的。如果上一步查找出来的pod是错误的,那么这个hostpath属性值也是错误的。这是为啥同时启动多个pod会出现错误原因

上述是我个人的分析,仅供参考

目前在公司内部是通过修改调度器,在调度器里面添加过滤
一个node上不同时调度多个vgpu pod

@phoenixwu0229
Copy link

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个node上同时启动多个pod会有这个报错。我担心他的master镜像有问题,从master分支代码从新编译了一下,还是一样的。

是的,看来我们俩问题是一样的,其他issues上说去年已经解决这个,不知道为啥现在还有这个问题

嗯 等等看有没有其他回复吧,如果你有好的解决方法,麻烦也分享一下

hi,我看下项目的部分代码,发现项目无法解决我们的这种情况,唯一可行的方案就是挨个启动。 如果是应用到线上环境可以尝试修改kubernetes调度器添加过滤项,将 当前时间 - Node上VGPU资源POD最大创建时间 <= 10s 的node过滤掉,保证每个Node上VGPU POD启动时间错开,一个Node上不同时调度多个VGPU POD

老哥,你知道这个问题的根因是哪部分代码有问题吗?

https://github.com/tkestack/gpu-manager/blob/master/pkg/services/allocator/nvidia/allocator.go 中 663行 Allocate 方法 这个方法里面会遍历pods获取没有分配vgpu的pod。 这种情况会存在一个问题,如果同时存在多个pod没有分配vgpu,这种情况下找的pod会出现错误。 当前pod1请求了接口,反而是找到pod2,这种情况下信息就是错误的。
https://github.com/tkestack/gpu-manager/blob/master/pkg/server/server.go 中 Allocate 方法打印返回值,你会发现返回值中一个hostpath属性,值是跟pod路径有关联的。如果上一步查找出来的pod是错误的,那么这个hostpath属性值也是错误的。这是为啥同时启动多个pod会出现错误原因
上述是我个人的分析,仅供参考

目前在公司内部是通过修改调度器,在调度器里面添加过滤 一个node上不同时调度多个vgpu pod

是修改gpu-admission吗?

@fengyu10
Copy link

不是,是kube-scheduler

@phoenixwu0229
Copy link

不是,是kube-scheduler

可以请教一下 修改方法吗?

@fengyu10
Copy link

https://github.com/kubernetes-sigs/scheduler-plugins
看下这个,在里面添加你自己的插件

@hzliangbin
Copy link

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

4 participants