zoukankan      html  css  js  c++  java
  • 【深度学习】使用Ray

    启动

    ray.init():

      可以自动检测机器的cpu / gpu,也可以传入参数覆盖

      local_mode=True可以关闭并行的计划

    ray.is_initialized()

    ray.shutdown()

    远程func: @ray.remote,  

      id = func.remote(**kwargs) 

      res = ray.get(id)

    tips:

    id也可以作为远程func的参数

    需要在ray.remote中指定计算资源,否则默认1cpu

    远程class: @ray.remote

      actor = Actor.remote()

      id = actor.method1.remote()

    tips:

    不同Actor可以并行,同一actor顺序执行

    如果返回多个object id(以3个为例),要使用ray.method(num_return_vals=3)

    如果对每个实例使用不同的资源,使用options方法:Actor.options(nums_cpus=1).remote()

    强制中止:ray.actor.exit_actor()

    ActorPool的使用

    from ray.util import ActorPool

    a1, a2 = Actor.remote(), Actor.remote()

    pool = ActorPool([a1, a2])

    res = pool.map(lambda a, v: a.double.remote(v), [1, 2, 3, 4])

    GPU使用

    init可以指定gpu数量,可以指定多,但是使用不存在的gpu会发生故障

    ray.get_gpu_ids可以查看gpu个数

    序列化:

    使用plasma

    对象:

    id = ray.put(value)

    获取结果:

    ray.get 、 ray.wait

    待填坑:集群设置 、 异步

  • 相关阅读:
    一:字符串中匹配中文
    flask+gevent的异步框架
    linux常见的操作指令
    Markdown语法
    Git常用操作
    Vim
    IDEA使用汇总
    Maven基本使用汇总
    Zookeeper问题汇总
    编程最佳实践
  • 原文地址:https://www.cnblogs.com/yesuuu/p/13032388.html
Copyright © 2011-2022 走看看