본문으로 이동

랜더스크립트

위키백과, 우리 모두의 백과사전.
RenderScript
개발자구글
운영 체제안드로이드 (운영체제)
웹사이트developer.android.com/guide/topics/renderscript/compute

RenderScript더 이상 사용되지 않는 모바일 기기용 안드로이드 운영체제의 구성 요소로, 이기종 하드웨어를 활용하는 가속용 API를 제공한다. 개발자는 더 복잡한 (하위 수준) 코드를 작성하는 대가로 애플리케이션의 성능을 높일 수 있다.

이것은 개발자에게 세 가지 주요 도구를 제공한다: 간단한 3D 렌더링 API, CUDA와 유사한 컴퓨팅 API, 그리고 C99에서 파생된 언어이다.

역사

[편집]

RenderScript는 안드로이드 3.0 허니콤에서 추가되었다.[1]

안드로이드 4.1부터 RenderScript의 실험적인 3D 렌더링 API는 더 이상 사용되지 않으며, 현재는 컴퓨팅 API로만 존재한다.

안드로이드 4.2는 블렌드 및 블러와 같은 스크립트 내장 기능에 새로운 기능을 추가했으며, 관련 RenderScript 스크립트를 그룹화하여 한 번의 호출로 실행할 수 있는 ScriptGroups도 추가했다. 또한 FilterScript를 추가했는데, 이는 개발자가 표준 RenderScript 런타임 API를 사용하여 FilterScript에서 이미지 처리 작업을 작성할 수 있도록 하는 RenderScript의 하위 집합이지만, 멀티코어 CPU, GPUDSP 전반에 걸쳐 더 넓은 호환성과 향상된 최적화를 보장하는 엄격한 제약 조건 내에서 작동한다. FilterScript는 부동 소수점 정밀도가 덜 정밀하고 RenderScript의 더 많은 교차 장치 호환 하위 집합이며 RenderScript 대체 기술로 오해해서는 안 된다.[2]

2021년 4월 19일, 구글은 RenderScript가 안드로이드 12에서 더 이상 사용되지 않을 것이며, 기존 코드를 Vulkan으로 포팅할 것을 권장한다고 발표했다.[3]

기능

[편집]

이식성

[편집]

RenderScript는 하드웨어 유형에 관계없이 다양한 안드로이드 플랫폼에서 항상 실행되도록 설계되었다. 성능 튜닝은 런타임에 이루어진다.

RenderScript 이식성은 장치별 드라이버에 따라 달라진다.[4] 모든 장치에 기본 CPU 전용 드라이버가 제공되며, GPU 사용을 가능하게 하는 특정 칩셋 제공 RenderScript 드라이버도 존재한다(예: libRSDriver_adreno.so 안드로이드 라이브러리에 제공되는 퀄컴 특정 드라이버).

성능

[편집]

RenderScript는 기본 하드웨어에서 효율적으로 분할 및 동시 실행될 수 있는 작업을 런타임에 조정하도록 설계되었다.[5]

안드로이드 4.2부터 RenderScript는 지원되는 시스템에서 CPU 외에 GPU에서도 실행되도록 확장되었다.[6]

제한 사항

[편집]
  • RenderScript는 아직 온칩 스레드 간 통신(OpenCL의 로컬 메모리, CUDA의 공유 메모리)을 표현할 수 없다.
  • RenderScript는 아직 양선형 보간법을 사용한 하드웨어 구현 2D 및 3D 조회(CUDA의 텍스처, OpenCL의 이미지 읽기)를 표현할 수 없다.

각주

[편집]
  1. “Honeycomb”. 
  2. “Android 4.2 APIs”. 2013년 3월 20일에 확인함. 
  3. “Android GPU Compute Going Forward”. 《Android Developers Blog》 (영어). 2021년 4월 19일에 확인함. 
  4. Marchetti, Alberto (2016). 《RenderScript: parallel computing on Android, the easy way》 1판. 2016년 8월 25일에 원본 문서에서 보존된 문서. 2016년 7월 5일에 확인함. 
  5. “Renderscript Part 2”. 
  6. “Jelly Bean - Renderscipt Performance”. 2012년 11월 27일에 확인함. 

외부 링크

[편집]