Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

NVIDIA warp 소개 본문

연구 Research

NVIDIA warp 소개

보통의공대생 2024. 4. 10. 20:46

 

최근 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' 카테고리의 다른 글

Sampling algorithm 관계 정리 및 요약  (0) 2024.03.23
Comments