rlcard icon indicating copy to clipboard operation
rlcard copied to clipboard

Env 中的多牌桌流程优化 数倍以上效率提升

Open leafsoar opened this issue 2 years ago • 7 comments

在 evn 中 run 函数内部,step 所执行的是单牌桌的单步操作,跟牌时的可操作数量往往很少(单牌只能根单牌和炸弹),所以频繁的调用 AI 计算次数的同时,计算量并不高。整体来说 GPU 的使用率会很高,多进程(CPU 核数多)时 GPU 可能会打满。

而使用多牌桌模型,将多个牌桌的 setp 所需数据,组合一次性送入 AI 模型计算,然后拆分到每桌进行逻辑处理。

计算量可能不会减少,但是送入的次数会大大降低。可以多尝试一些牌桌数量,这里测试的结果是,相比单桌 GPU 运算慢载(CPU 核数多,所以 GPU 成了瓶颈),修改成 32 桌同时进行,GPU 占用率会下降到百分之十几,帧率可以提高数倍(CPU 会成为瓶颈)。更多的牌桌数,会导致 GPU 的运算量下降到个位数,显存有一定提升,但不明显。更多的牌桌数不意味着更高的帧率,有个平衡点,这里测试的是 32 桌左右同时送入 step 中,会提高数倍的效率。均衡 CPU 和 GPU 的性能配比

测试硬件:13900KF + 4090

leafsoar avatar Jun 08 '23 15:06 leafsoar

@leafsoar 感谢 有代码可以分享吗

daochenzha avatar Jun 09 '23 19:06 daochenzha

@daochenzha 这边是基于 douzero 针对灌蛋的 “魔改” 尝试,融入了一些 rlcard 设计的优点。而针对 rlcard 框架的版本支持,可能涉及到的模型定义,流程上就需要考虑的比较多,还没有支持。

leafsoar avatar Jun 10 '23 23:06 leafsoar

@leafsoar 好的 期待您的code

daochenzha avatar Jun 22 '23 16:06 daochenzha

请教一个问题,我使用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不下降了,而且好像还不如随机出牌这么厉害请问是哪里的问题呢

xxTree avatar Jun 28 '24 07:06 xxTree

请教一个问题,我使用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不下降了,而且好像还不如随机出牌这么厉害请问是哪里的问题呢

可能的原因很多。每个环节都可能出问题,但没一点效果,主要是这两点排查一下:

是否对出牌输赢奖励进行区分 是否将学习模型的状态更新到下次出牌模型中

leafsoar avatar Jul 15 '24 06:07 leafsoar

@xxTree 哥们,掼蛋是怎么实现的,求分享。

Haihsu avatar Aug 09 '24 09:08 Haihsu

请教一个问题,我用DouZero训练出来的掼蛋模型发现一个问题,就是训练一个月了,loss值一直在5到6之间,不回升了,而且好像还不如随机出牌那么厉害请问是哪里的问题呢

每个人可能的原因很多。第一步都可能出问题,但是一点效果都没有,主要是这几点排查一下:

是否对出牌输赢奖励进行区分 是否将学习模型的状态更新到下一个出牌模型中

就是loss值不收敛,打比方刚开始训练loss在5左右,然后训练一段时间loss就在2.8到3.8之间 不会再降了

xxTree avatar Aug 12 '24 02:08 xxTree