병렬컴퓨팅 시대의 생체 인식 알고리즘

10/05/2013
Compartir!

전통적으로, 반도체 산업은 새로운 세대마다 트랜지스터의 수를 두 배로 증가시키면서 컴퓨터 장치의 클록 속도를 향상시킬 수있었습니다. 불행히도 전력 제약으로 인해 지난 10 년 동안 클록 주파수의 성장이 지연되었고 주요 마이크로 프로세서 제조업체는 제품 포트폴리오를 여러 코어 아키텍처로 전환했습니다. 최신 GPU는 더 나아가 현재 합리적인 전력관리로 수백 개의 단순 코어를 통합합니다. 이러한 사실로 인해 소프트웨어 회사는 직렬 실행을 위해 생각한 기존의 순차 알고리즘을 이러한 새로운 장치에 적용하고 매핑하는 데 어려움을 겪고 있습니다. 이 병렬화 작업은 생각만큼 쉽지 않습니다. 일반적으로 인간은 자신의 행동을 순차적으로 생각하는 경향이 있습니다. 동시에 수백 가지의 동시 행동 (상호 의존성이있는 경우도 있음)을 신속하게 구상 할 수 있습니까? 세계 최고의 지성들과 프로그래머는 대부분 그렇지 않습니다. 그리고 이것은 합리적입니다. 우리의 일상 생활에서 우리는 동시에 9 ~ 10 가지 중요한 일을 처리해야한다면 직장에서 압도당하는 경향이 있습니다. 그러나 간단히 말하자면, 우리의 두뇌는 멀티 태스킹을 다루도록 설계되지 않은 것 같습니다. 우리가 병렬로 수행하려는 작업이 많을수록 (예를 들어, 전화 통화 중 전자 메일에 응답하는 경우) 주의가 부족하여 오류가 발생할 가능성이 높습니다. 이것이 GPU와 같은 장치를 대상으로 최적화하고 확장 가능한 병렬 코드를 작성하는 것이 길고 지루한 과정이 되도록 합니다. 이러한 아키텍처에 대한 코드 작성은 일반적으로 오류가 발생하기 쉽고 디버그하기가 어렵습니다. 직렬화 된 버전을 며칠 내에 쉽게 프로그래밍하고 테스트 할 수있는 특정 커널 연산에 대해 효율적인 병렬 코드를 작성하는 데는 몇 달을 보내는 것이 드문 일이 아닙니다.

병렬 컴퓨팅의 새로운 시대에 시장에서 사용할 수있는 최신 병렬 하드웨어의 기능을 완전히 활용하는 소프트웨어 제품을 출시하고자한다면 반드시 과거보다 더 많은 돈과 리소스를 투자해야합니다. Herta Security는 제품 초기부터 병렬화를 채택하기 시작했으며 곧 생체 인식 알고리즘이 미세 입자 병렬 처리 및 데이터 병렬 벡터 계산의 이점을 크게 누릴 수 있음을 깨달았습니다. 피처 추출 프로세스와 같은 전통적인 생체 인식 파이프 라인의 배수 단계는 본질적으로 평행합니다. 그러나 일부 기능의 메모리 액세스 패턴의 복잡성으로 인해 데이터 재사용, 캐싱 및 프리 페치와 같은 전략이 어려워집니다. GPU 컴퓨팅의 출현과 함께 프로그래머는 수백만 개의 동시 스레드를 처리하고 동기화하고 가능한한 대기 시간을 줄이기 위해 이 장치의 이 기종 캐시 아키텍처를 효율적으로 활용해야합니다. 이러한 작업은 연구 개발의 관점에서 보면 시간이 많이 걸리지 만 하드웨어의 최신 기술로 탁월한 확장 성을 제공하면서 탁월한 사용자 경험을 제공하는 우수한 품질의 제품을 제공 할 수 있습니다.