NVIDIA warp 소개

2024. 4. 10. 20:46·연구 Research

 

최근 differentiable simulation / graphics가 연구가 되고 있다.

특히 GPU 존재 자체가 그래픽의 빠른 연산을 위해 나온 것이기 때문에 NVIDIA에서도 관심이 많은데

파이썬 기반의 고성능 GPU 시뮬레이션을 가능하게 하는 라이브러리 warp를 배포하고 있다.

 

https://github.com/nvidia/warp

 

GitHub - NVIDIA/warp: A Python framework for high performance GPU simulation and graphics

A Python framework for high performance GPU simulation and graphics - NVIDIA/warp

github.com

 

 

 

1. 설치

 

설치 방법은 위의 github에 나온대로 진행한다.

 

pip install warp-lang

 

기본적으로 GPU가 있고, NVIDIA Driver 및 CUDA 모두 설치가 다 되어있어야 한다.

 

 

설치 후에는 파이썬에서 다음 코드를 작성하고 잘 작동하는지 보면 된다.

 

import warp as wp
import numpy as np

wp.init()

num_points = 1024

@wp.kernel
def length(points: wp.array(dtype=wp.vec3),
           lengths: wp.array(dtype=float)):

    # thread index
    tid = wp.tid()
    
    # compute distance of each point from origin
    lengths[tid] = wp.length(points[tid])


# allocate an array of 3d points
points = wp.array(np.random.rand(num_points, 3), dtype=wp.vec3)
lengths = wp.zeros(num_points, dtype=float)

# launch kernel
wp.launch(kernel=length,
          dim=len(points),
          inputs=[points, lengths])

print(lengths)

 

 

설치가 잘 되면 다음과 같이 나온다.

 

Warp 1.0.2 initialized:
   CUDA Toolkit 11.5, Driver 12.2
   Devices:
     "cpu"      : "x86_64"
     "cuda:0"   : "NVIDIA RTX 6000 Ada Generation" (47 GiB, sm_89, mempool enabled)
     "cuda:1"   : "NVIDIA RTX 6000 Ada Generation" (48 GiB, sm_89, mempool enabled)
     "cuda:2"   : "NVIDIA RTX 6000 Ada Generation" (48 GiB, sm_89, mempool enabled)
   CUDA peer access:
     Supported fully (all-directional)
   Kernel cache:
     /home/user/.cache/warp/1.0.2
Module __main__ load on device 'cuda:0' took 188.29 ms
[1.0719502 0.8535018 1.3236377 ... 1.1255112 1.1754484 0.8575004]

 

 

 

2. example test

 

warp에 있는 여러가지 예제가 있다.

 

터미널에서 다음을 입력하면 되는데,

python -m warp.examples.<example_subdir>.<example>

 

 

 

다음 examples 폴더에서 찾아서

 

python -m warp.examples.sim.example_cartpole

 

다음과 같이 example_cartpole.py를 실행시킬 수 있다.

 

3. usd 파일 확인 방법

 

 

usd 파일은 blender나 pixar의 usd viewer가 있는데 NVIDIA의 omniverse 설치 후

 

usd viewer

 

 

저작자표시 비영리 변경금지 (새창열림)

'연구 Research' 카테고리의 다른 글

[공부] NVIDIA Omniverse, Isaac Sym  (0) 2025.01.28
[라이브러리] Physic simulation for robotics and engineering  (0) 2024.11.08
Sampling algorithm 관계 정리 및 요약  (0) 2024.03.23
'연구 Research' 카테고리의 다른 글
  • [공부] NVIDIA Omniverse, Isaac Sym
  • [라이브러리] Physic simulation for robotics and engineering
  • Sampling algorithm 관계 정리 및 요약
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability &amp; Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    인공지능
    우분투
    IEEE
    Python
    matplotlib
    논문작성법
    생산성
    텝스공부
    수치해석
    MATLAB
    Linear algebra
    ChatGPT
    논문작성
    Julia
    딥러닝
    LaTeX
    Numerical Analysis
    JAX
    텝스
    서버
    Statics
    고체역학
    pytorch
    WOX
    obsidian
    Dear abby
    옵시디언
    Zotero
    teps
    에러기록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
NVIDIA warp 소개
상단으로

티스토리툴바