相关内容:

NVIDIA公司推出的GPU运行环境下的机器人仿真环境(NVIDIA Isaac Gym)的安装——强化学习的仿真训练环境

=============================================

NVIDIA Isaac Gym   实现的功能就是在GPU端运行机器人仿真环境。

具体来看,实现了两个方面的功能:

1.  GPU端运行的机器人仿真环境

2.  GPU端运行的大规模机器人仿真环境

这两个功能其实就是一个,那就是大规模GPU端运行的机器人仿真环境,其关键点还是这个大规模上,这也就是为什么这里是用GPU端实现仿真环境的原因。

这里的仿真环境主要是为强化学习进行仿真环境下进行算法训练来服务的,强化学习算法大致可以分为基于值函数的强化学习算法和基于策略梯度的强化学习算法两种。由于机器人仿真环境往往需要多个动作的长时间决策,而该类问题基于策略梯度的强化学习算法比较适用,同时由于基于策略梯度的强化学习算法对仿真环境数据传递的时效性要求较高,同时多仿真环境的并行采样数据又可以进一步提高基于策略梯度的强化学习算法的性能,所以对于机器人控制的强化学习算法我们往往需要大规模的仿真环境进行并行运行。如大型的计算机公司往往会采用几百台服务器集群使用MPI的方式进行CPU端的仿真环境运行,而这往往需要较大的经济支持,因此个人进行这方面研究时往往无法满足大规模CPU集群的仿真环境的要求,而NVIDIA Isaac Gym所实现的功能就是将CPU端运行的机器人仿真环境搬到了GPU端,因为一个顶尖的商用CPU也就是几十个或者近百个核心而一个普通些NVIDIA显卡就具有几千个流式计算核心,这样以往需要CPU集群的计算任务也可以使用一个普通的NVIDIA显卡来运行。可以说NVIDIA Isaac Gym本质就是将传统的CPU端运行的机器人仿真环境在GPU上进行了实现,从而实现了大规模仿真环境在普通GPU上可以并行的目的。 可以说NVIDIA Isaac Gym的应用场景是大规模环境采样的并行的任务,如果你的reinforcement learning任务不需要大规模仿真环境并行的话那么就用不到这个NVIDIA Isaac Gym,而机器人仿真环境的训练往往正是需要大规模仿真环境并行的任务,这也是为什么NVIDIA Isaac Gym上实现的基本都是机器人仿真环境。

大规模仿真环境并行在CPU端与GPU端的对比图:

传统的使用CPU端运行大规模的仿真环境基本是两种方式:

For example, we could split 1024 environments into eight physics scenes with 128 environments each. Each scene can run in its own thread

第一种, 一个CPU核心运行一个仿真环境,由于单CPU核心数有限所以我们常常采用分布式集群的方式运行。

第二种, 一个CPU核心同时维护运行多个仿真环境,比如1024个并行仿真环境,而此时我们的CPU核心数为8,那么我们可以为每个CPU核心分配128个仿真环境进行运行。该种方式可以在单个CPU上单机运行大规模的仿真环境。

NVIDIA Isaac Gym最大的意义就是实现了在普通的单机电脑上也可以进行大规模仿真环境的运行,从而实现在单机环境下使用大规模仿真环境来加速进行高纬度连续任务的强化学习训练。

关于详细介绍:

https://arxiv.org/pdf/2108.10470.pdf

NVIDIA公司推出的GPU运行环境下的机器人仿真环境(NVIDIA Isaac Gym)—— 到底实现了什么功能,意义价值又是什么???的更多相关文章

  1. Centos7.4环境下搭建Python开发环境(虚拟机安装+python安装+pycharm安装)

    目录 一.安装 Centos7.4虚拟机 二.安装 python3.6.7 三.安装 pycharm 一般情况下,大家都是在 Windows平台下进行 Python开发,软件安装和环境搭建都非常&qu ...

  2. 01.1 Windows环境下JDK安装与环境变量配置详细的图文教程

    01.1 Windows环境下JDK安装与环境变量配置详细的图文教程 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1.JDK JDK 可以到官网下载 http://www.or ...

  3. 在win10环境下搭建 solr 开发环境

    在win10环境下搭建 solr 开发环境 2017年05月30日 09:19:32 SegaChen0130 阅读数:1050   在win10环境下搭建 solr 开发环境 安装环境  Windo ...

  4. Linux环境下SolrCloud集群环境搭建关键步骤

    Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/close ...

  5. Linux环境下HDFS集群环境搭建关键步骤

    Linux环境下HDFS集群环境搭建关键步骤记录. 介质版本:hadoop-2.7.3.tar.gz 节点数量:3节点. 一.下载安装介质 官网下载地址:http://hadoop.apache.or ...

  6. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

  7. 在Win环境下配置java的环境进行开发步骤

    1.下载官方JDK,网址如下 http://www.oracle.com/technetwork/java/javase/downloads/index.html

  8. Anaconda3+python3环境下如何创建python2环境(win+Linux下适用,同一个anaconda下py2/3共存)

    本人之前已经在anaconda环境下已经安装了python3的环境,现在因为一些需求,要安装python2环境 1.打开anaconda的anaconda prompt查看当前环境: conda in ...

  9. Windows环境下搭建Cocos2d-x3.2环境并配置android交叉编译环境

    一.软件 1)VS2012(C++11特性在VS2012以上可以使用):传送门: 2)Cocos2d-x官网源码:传送门:http://cocos2d-x.org/download 3)JDK:传送门 ...

  10. Windows环境下maven 安装与环境变量配置

    Maven是一个项目管理的Java 工具,在JavaEE中,我们可以使用Maven方便地管理团队合作的项目,现在我们在学习JavaEE框架,使用Maven可以管理类库,有效方便地供团队中的其他人员使用 ...

随机推荐

  1. redis安全篇

    redis被攻击,作为突破口,服务器惨遭毒手的事太常见了. 大多数云服务器被攻击,都是redis,mongodb等数据库被入侵. 因此修改端口,密码,以及注意bind运行地址,是必须. 思考是否要暴露 ...

  2. Java中常见的几种的溢出

    引言 在开发过程中,因为编程经验不足,经常会导致各种各样的溢出,今天本文就举例说明几种常见的溢出 堆溢出 堆溢出是最常见的一种溢出. 导致原因:堆中没有足够的空间储存新生成的实例对象 public s ...

  3. Java动态获取实现类 Class.forName(clazz).newInstance()和applicationContext.getBean, bean Map寻找方式,Java Map定义和初始化方法

    Java动态获取实现类 Class.forName(clazz).newInstance()和applicationContext.getBean, bean Map寻找方式,Java Map定义和初 ...

  4. springboot增加@EnableAsync注解,否则方法中的@Async注解没有生效

    springboot增加@EnableAsync注解,否则方法中的@Async注解没有生效. @EnableFeignClients(basePackages = {"com.test&qu ...

  5. Java正则表达式语法及简单示例

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestMatcher { public st ...

  6. SQLite vs MySQL vs PostgreSQL对比总结

    开发业务系统时,是绕不开RDBMS(关系型数据库)的.虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代. 近几年大大小小的项目中,常用的三种RDBMS(SQLite ...

  7. Linux greybus

    背景 在研究高通平台驱动震动马达时,我需要为内核驱动实现以下功能:/sys/class/timed_output/vibrator/enable":sysfs文件系统注册接口.提供show. ...

  8. 合并STM32 iap的hex文件合并为一个hex文件

    --- title: 合并STM32 iap的hex文件合并为一个hex文件 date: 2020-06-15 04:32:26 categories: tags: - iap - stm32 --- ...

  9. Linux 进程运行状态

    背景: 以下有关的知识点是在多进程拷贝的时候,执行了sync导致卡死导致的. Linux进程状态:R (TASK_RUNNING),可执行状态.只有在该状态的进程才可能在CPU上运行.而同一时刻可能有 ...

  10. TypeScript 学习笔记 — 泛型的使用(七)

    目录 一.指定函数参数类型 单个泛型 多个泛型 二.函数标注的方式 类型别名 type 接口 interface *案例分析: 三.默认泛型 四.泛型约束 五.泛型接口使用 六.类中的泛型 泛型(Ge ...