V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
? Learn Python the Hard Way
Python Sites
? PyPI - Python Package Index
? http://diveintopython.org/toc/index.html
? Pocoo
值得关注的项目
? PyPy
? Celery
? Jinja2
? Read the Docs
? gevent
? pyenv
? virtualenv
? Stackless Python
? Beautiful Soup
? 结巴中文分词
? Green Unicorn
? Sentry
? Shovel
? Pyflakes
? pytest
Python 编程
? pep8 Checker
Styles
? PEP 8
? Google Python Style Guide
? Code Style from The Hitchhiker's Guide
shicheng1993
V2EX  ?  Python

深度学习模型部署问题

  •  1
     
  •   shicheng1993 · 2019-12-18 10:58:19 +08:00 · 4683 次点击
    这是一个创建于 1606 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    1.当我使用多进程并行启动模型的时候( pytorch 或者 tf 或者 keras ),显存或者内存的占用都是翻倍的,这种并行能够理解.
    2.当我在主进程启动模型并使用多线程去同时 fit 或者 predict 时,这时会发生什么呢?

    ( 1 )有一种锁的机制,哪个线程拿到锁就进行推理,之后进行下一个线程的推理,实际上的串行。
    ( 2 )模型内部类似于函数调用,虽然有 GIL 但是每个线程的推理是实际上的并行,推理速度变慢,但都在慢慢进行。
    另外当这个模型是使用 GPU 进行运算的时候,上面的情形下的处理逻辑是一样的吗? 请大佬指点

    5 条回复  ?  2019-12-21 23:39:38 +08:00
    Latin
        1
    Latin  
       2019-12-18 11:18:11 +08:00
    用 gpu 只会加快算法处理速度,不会加快线程运行
    lonelygo
        2
    lonelygo  
       2019-12-18 11:22:33 +08:00
    shicheng1993
        3
    shicheng1993  
    OP
       2019-12-18 12:02:38 +08:00
    谢谢两位
    @Latin 额,我问的不是这个。是模型与进程线程并发之间的关系,不是运算速度。
    @lonelygo tf 的 serving 这个会用,但是 rpc 调用时,传输预处理后的数据,相对于运算量开销太大,没有使用。他这个是黑箱,不能解决我上面手动部署中的疑问。
    yangyaofei
        4
    yangyaofei  
       2019-12-18 13:04:04 +08:00
    GPU 内部已经把处理都拆成无数个线程了,感觉多线程意义不大...
    如果是多线程的话,我觉得是计算的时候 python block,然后后端是并行的,所以看起来应该是并行的样子,但是 GPU 资源有限,最终没啥区别.用 tf serving 还是最理想的办法....不用处理 batching,优先级等等的问题
    tedeyang
        5
    tedeyang  
       2019-12-21 23:39:38 +08:00
    CPU 主进程加载模型,其他线程调用,这种情况下推理计算是串行的。就是传统的并发问题,你可以用 openvino/opencl 来做并行编程。
    GPU 任何时间点基本只做一个模型的 predict,但模型内调用的 cuda 是有上万个 core 并行计算。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1495 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:29 · PVG 01:29 · LAX 10:29 · JFK 13:29
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com