Processing Unit
1 개요
FLImaging® 은 고성능 이미지 처리 및 분석을 위해 다양한 프로세싱 유닛 클래스를 제공합니다. 특정 하드웨어 환경(CPU, Multi CPU, NVIDIA CUDA 기반 GPU)에 최적화된 명령어 처리를 지원하며, 효율적이고 유연한 연산을 가능하게 합니다.
2 CPU
CProcessingUnitCPU 클래스는 CPU 기반 작업 처리를 위한 프로세싱 유닛 클래스입니다.
멤버 함수 목록
- 명령어 설정 및 조회
GetInstruction: 현재 설정된 명령어 반환SetInstruction: 사용할 명령어 설정
열거형
EInstructionEInstruction_Optimal: 최적의 명령어 선택EInstruction_Normal: 기본 명령어 사용EInstruction_SSE4: SSE4 명령어 사용EInstruction_AVX2: AVX2 명령어 사용
3 CPU Multi
CProcessingUnitCPUMulti 클래스를 통해 다중 CPU 기반 처리 작업이 수행 가능합니다.
CProcessingUnitCPU 클래스에서 확장되었으며, 여러 CPU를 활용한 병렬 처리를 지원합니다.
4 Cuda
CProcessingUnitCuda 클래스를 통해 NVIDIA CUDA 기반 GPU를 활용하여 고속 연산을 처리할 수 있습니다.
멤버 함수 목록
1. Cuda 사용 가능 여부 확인
IsCudaAvailable: Cuda 기능 실사용 가능 여부 반환IsCudaDeepLearningAvailable: Cuda 딥 러닝 작업 실사용 가능 여부 반환
2. Cuda 장치 정보 조회 및 설정
GetAvailableCudaDeviceCount: 시스템에서 사용 가능한 Cuda 장치 수 반환GetDeviceIndex: 설정된 Cuda 장치 인덱스 반환SetDeviceIndex: 사용할 Cuda 장치 인덱스 설정
3. Cuda 초기화 및 메모리 관리
WarmUp: 초기 로딩 시, Cuda 모듈 준비 시간을 줄이기 위한 사전 작업 수행GetAvailableCudaMemory: 현재 선택된 Cuda 장치의 사용 가능한 메모리 크기 반환
4. Cuda 장치 리스트 관리
GetInvolvedCudaDeviceIndices: 연산에 참여할 Cuda 장치 인덱스 반환SetInvolvedCudaDeviceIndices: 연산에 참여할 Cuda 장치 인덱스 설정ClearInvolvedCudaDeviceIndices: 연산에 참여할 Cuda 장치 인덱스 초기화LockToModifyInvolvedCudaDeviceIndices: Cuda 장치 인덱스 설정 변경 잠금UnlockToModifyInvolvedCudaDeviceIndices: Cuda 장치 인덱스 설정 변경 잠금 상태 해제
5. 사용 허가된 Cuda 장치 정보
GetPermittedCudaDeviceCount: 사용 허가된 Cuda 장치 수 반환GetPermittedCudaDeviceIndices: 사용 허가된 Cuda 장치들의 인덱스 반환
5 Manager
CProcessingUnitManger 클래스는 프로세싱 유닛 객체를 관리하는 역할을 합니다. 프로세싱 유닛 객체 설정, 조회, 초기화를 할 수 있습니다.
멤버 함수 목록
GetProcessingUnit: 현재 설정된 프로세싱 유닛 객체 반환SetProcessingUnit: 새로운 프로세싱 유닛 객체 설정ResetProcessingUnit: 설정된 프로세싱 유닛 객체를 초기 상태로 리셋
6 Optimal
CProcessingUnitOptimal 클래스는 최적의 프로세싱 방식을 제공하는 클래스입니다.