랜더스크립트
| 개발자 | 구글 |
|---|---|
| 저장소 |
|
| 엔진 | |
| 운영 체제 | 안드로이드 (운영체제) |
| 웹사이트 | developer |
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, GPU 및 DSP 전반에 걸쳐 더 넓은 호환성과 향상된 최적화를 보장하는 엄격한 제약 조건 내에서 작동한다. 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의 이미지 읽기)를 표현할 수 없다.
각주
- ↑ “Honeycomb”.
- ↑ “Android 4.2 APIs”. 2013년 3월 20일에 확인함.
- ↑ “Android GPU Compute Going Forward” (영어). 《Android Developers Blog》. 2021년 4월 19일에 확인함.
- ↑ Marchetti, Alberto (2016). 《RenderScript: parallel computing on Android, the easy way》 1판. 2016년 8월 25일에 원본 문서에서 보존된 문서. 2016년 7월 5일에 확인함.
- ↑ “Renderscript Part 2”.
- ↑ “Jelly Bean - Renderscipt Performance”. 2012년 11월 27일에 확인함.
외부 링크
- 스크립트 오류가 있는 문서
- CS1 - 영어 인용 (en)
- 웹아카이브 틀 웨이백 링크
- 번역이 검토되지 않은 문서 (WikiVault)
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 안드로이드 (운영체제)
- GPGPU 라이브러리