Accelerate
Accelerate 프레임워크는 CPU의 벡터 처리 기능을 활용하여 CPU에서 에너지 효율적인 고성능 계산을 제공합니다. Accelerate는 머신 러닝, 데이터 압축, 신호 처리 등을 활용하는 앱을 제작할 수 있도록 최적화된 대규모 수학 계산 및 이미지 계산을 수행합니다.
머신 러닝
Accelerate 프레임워크의 BNNS 라이브러리는 교육 및 추론을 위한 신경망을 구성하는 데 사용하는 함수 모음입니다. 이 라이브러리는 iOS, macOS, tvOS 및 watchOS 플랫폼이 지원하는 모든 CPU에서 고성능 및 저에너지 소비에 최적화된 루틴을 제공합니다. BNNS에는 다양한 레이어 유형, 손실 함수, 활성화 함수와 머신 러닝용 지원 서브루틴이 포함되어 있습니다.
이미지 프로세싱
vImage는 고성능 이미지 처리 프레임워크입니다. 컨볼루션, 기하 변환, 히스토그램 작업, 형태 변환, 알파 합성 등 이미지 조작을 위한 함수뿐만 아니라 형식 변환 및 기타 작업을 위한 유틸리티 함수도 포함되어 있습니다.
vImage는 CPU의 벡터 프로세서를 사용하여 이미지 처리를 최적화합니다. 벡터 프로세서를 사용할 수 없는 경우 vImage는 다음으로 이용 가능한 최상의 옵션을 사용합니다. 이 프레임워크를 사용하면 벡터화된 코드를 작성하지 않고도 벡터 프로세서의 이점을 얻을 수 있습니다.
디지털 신호 처리
vDSP 프레임워크에는 디지털 신호 처리에 최적화된 함수 모음과 대규모 배열에 대한 범용 산술 기능이 포함되어 있습니다. 디지털 신호 처리 함수의 예로는 푸리에 변환과 4차 필터링 연산이 있습니다. 산술 함수에는 합계, 평균, 최댓값 등의 곱하기-더하기 및 환원 함수가 포함됩니다.
벡터 및 행렬 계산
vForce를 사용하면 벡터에 대해 산술 및 초월 함수를 수행할 수 있습니다. vForce 연산은 벡터화된 함수이므로 동일한 벡터에 대한 루프로 동일한 연산을 수행하는 것보다 상당히 더 빠르고 에너지 효율적입니다.
simd 라이브러리는 소규모 벡터 및 소규모 행렬 계산을 위한 유형과 함수를 제공합니다. 유형에는 정수 및 부동 소수점 벡터와 행렬이 포함됩니다. 함수는 기본 산술 연산, 요소별 수학 연산, 기하 및 선형 대수 연산을 제공합니다.
simd는 최대 16개의 요소(단정도 값의 경우) 또는 8개의 요소(배정도 값의 경우)를 포함하는 벡터와 최대 4 x 4 요소 크기의 행렬을 지원합니다.
선형 대수
Accelerate 프레임워크는 밀집 벡터 및 행렬에 대해 선형 대수를 수행하기 위한 BLAS 및 LAPACK 라이브러리를 제공합니다. Accelerate의 BLAS 및 LAPACK 구현은 CPU의 처리 기능을 추상화하므로 이러한 구현을 위해 작성된 코드는 런타임에 사용 가능한 프로세서에 대해 적절한 명령을 실행합니다. 즉, BLAS와 LAPACK 모두 고성능 및 저에너지 소비에 최적화되어 있습니다.
BLAS에는 벡터-벡터, 행렬-벡터, 행렬-행렬 연산을 비롯한 선형 대수 프리미티브가 포함되어 있습니다. LAPACK에는 고윳값 및 특잇값 문제에 대한 지원, 행렬 인수 분해뿐만 아니라 선형 방정식 및 선형 최소제곱법의 해결 시스템도 포함되어 있습니다.
무손실 압축
AppleArchive는 소유권, 권한, 플래그, 시간, 확장된 속성, 오류 수정 등의 파일 속성이 포함된 빠른 압축 기능을 제공합니다. AppleArchive는 다음과 같은 기능을 제공합니다.
- 모든 코어를 사용하고 에너지 효율적이며 더 빠른 결과를 제공하는 멀티스레드 처리
- 파일 및 파일 속성을 전송하고 사용 가능한 경우 파일 시스템 압축, 전체 복제본, 스파스 파일 같은 APFS(Apple File System) 기능을 사용할 수 있는 기능
- 유연한 인코딩 형식. 이를 통해 오류 수정, 다이제스트, 매니페스트, 외부 데이터 저장 등을 위한 아카이브를 사용할 수 있음
- 메모리 내 아카이브 처리, 스트리밍 액세스, 랜덤 액세스, 연속 아카이브 및 추출을 위한 API 지원
Spatial
Spatial은 3D 프리미티브로 작업할 수 있도록 간단한 API를 제공하는 라이트 버전의 3D 수학 라이브러리입니다. 여기에는 3D 점, 크기 및 직사각형 프리미티브와 아핀 및 투영 변환이 포함됩니다. 이 기능의 많은 부분은 Core Graphics의 2D 지오메트리 지원과 유사하지만, 3차원적이라는 차이가 있습니다. Spatial은 simd를 기반으로 구축되므로 고성능 3D 연산을 제공합니다.
Sparse Solvers
Accelerate 프레임워크의 Sparse Solvers 라이브러리를 사용하면 계수 행렬이 희소한 연립 방정식, 즉 행렬의 항목 대부분이 0인 연립 방정식에 대해 선형 대수를 수행할 수 있습니다.
과학 및 기술 분야의 많은 문제를 해결하기 위해서는 대규모 연립 방정식을 풀어야 합니다. 이러한 방정식이 선형인 경우에는 일반적으로 Ax = b의 행렬 방정식으로 표시됩니다. 또한 방정식이 비선형인 경우에도 문제를 일련의 선형 근사로 해결하는 경우가 많습니다.
정적분
구적법은 유한 구간 또는 무한 구간에 대해 함수의 정적분 근사치를 제공합니다.
구적법(Quadrature)은 곡선 아래의 면적을 측정하는 것을 의미하는 옛 용어입니다. 흔히, 해당 면적을 직사각형과 같이 면적을 쉽게 계산할 수 있는 더 작은 도형들로 나눈 다음, 이러한 작은 면적들을 합산하여 대략적인 결과를 얻는 방법으로 이를 수행했습니다.
현대 용어로는 이 과정을 정적분이라고 합니다. Accelerate 프레임워크의 구적법 기능은 유한 구간 또는 무한 구간에 대해 함수의 정적분 근사치를 제공하며, 이는 구간 내 일련의 점에서 함수를 평가하여 수행됩니다.
-
비디오
-
문서
최신 튜토리얼, 문서 및 API 참고 자료를 살펴봅니다.
-
샘플 코드
샘플 코드를 통해 Accelerate API가 구현되는 방식을 살펴보세요.
-
포럼
Apple 엔지니어 및 다른 개발자에게 Accelerate에 관해 질문하고 이야기를 나눌 수 있습니다.