gpu-manager icon indicating copy to clipboard operation
gpu-manager copied to clipboard

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

Open syy532960478 opened this issue 2 years ago • 17 comments

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??

syy532960478 avatar Mar 28 '22 03:03 syy532960478

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

fengyu10 avatar Mar 28 '22 11:03 fengyu10

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

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

syy532960478 avatar Mar 29 '22 01:03 syy532960478

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

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

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

fengyu10 avatar Mar 29 '22 01:03 fengyu10

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

syy532960478 avatar Mar 29 '22 01:03 syy532960478

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

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

fengyu10 avatar Mar 29 '22 01:03 fengyu10

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

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

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

syy532960478 avatar Mar 29 '22 01:03 syy532960478

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

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

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

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

fengyu10 avatar Mar 29 '22 09:03 fengyu10

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

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

syy532960478 avatar Apr 07 '22 01:04 syy532960478

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

phoenixwu0229 avatar May 11 '22 09:05 phoenixwu0229

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

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

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

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

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

phoenixwu0229 avatar May 11 '22 09:05 phoenixwu0229

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个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 avatar May 11 '22 09:05 fengyu10

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个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

fengyu10 avatar May 11 '22 09:05 fengyu10

跟你一样,启动一个没问题,挨个启动也没问题,就是在一个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吗?

phoenixwu0229 avatar May 11 '22 09:05 phoenixwu0229

不是,是kube-scheduler

fengyu10 avatar May 11 '22 09:05 fengyu10

不是,是kube-scheduler

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

phoenixwu0229 avatar May 11 '22 09:05 phoenixwu0229

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

fengyu10 avatar May 11 '22 10:05 fengyu10