Gpu기반 태양전지 웨이퍼 외관 검사기 개발(의뢰처 : 중소기업청) – PJT CODE : GpuSolar

  • 과제명 : GPU 기반 태양전지 웨이퍼 외관 검사기 개발
  • 기간 : 2012.03.19 ~ 2013.03.18 (12개월)
  • 사업명 : 중소기업청 창업성장-기술개발사업

GpuSolar 는 기존 태양전지 웨이퍼의 외관 검사기와 유사한 성능을 보장하면서도 보다 빠르게 검사를 수행할 수 있도록 GPU 의 멀티코어를 활용하여 검사 프로그램을 개선하는 것을 목표로 하는 과제입니다. 기존의 검사 프로그램에서는 HALCON 이라는 영상처리 라이브러리를 사용하여 개발하였는데 이 라이브러리의 속도 또한 결코 느리지 않습니다. 게다가 영상처리 알고리즘의 개수는 여타 다른 라이브러리에 비해 월등하게 많습니다. 다만, 라이브러리 엔진이 조금 무겁다는 것이 흠이라면 흠이긴 합니다.

hDevelopUI < MVTec 사의 HDevelop 프로그램으로 웨이퍼 검사 알고리즘을 구현하고 있는 화면 >

 

라인스캔 카메라를 사용해 저장한 태양전지 웨이퍼의 이미지는 4k x 4k 해상도를 가집니다. 흑백 영상으로 저장하더라도 16M 정도의 파일 사이즈를 가지게 되죠. 이미지 사이즈로 보자면 1600 만 화소의 카메라로 찍은 영상에 대해서 영상처리를 하는것과 마찬가지입니다.

이만큼 큰 사이즈의 데이터를 처리해야 하기 때문에 내부의 영상처리 알고리즘 역시 복잡도가 상당합니다. 6인치 웨이퍼에서 0.2 mm 이상의 결함을 발견하려면 거의 한 두 픽셀 이상의 결함 정보를 검출해 내야 하는 정도로 어렵고 시간이 오래 걸리는 작업입니다.

이러한 알고리즘을 기존의 방법보다 좀 더 빠르게 처리할 수 있다면 더 많은 웨이퍼를 처리할 수 있고 또는 더 큰 웨이퍼에 대해서도 동일한 시간안에 처리가 가능해집니다. 이를 구현하기 위해서 중소기업청에 과제를 제안하였고 해당 과제를 통해서 GPU 의 성능을 다시 한번 확인할 수 있는 계기가 되기도 하였습니다. 사용된 GPU는 SP(Streaming Processor) 라고 부르는 CUDA 코어를 1536개나 가지고 있는 NVidia 의 GTX680 이며 CUDA 4.2 버전의 SDK를 사용하였습니다.

 

20130308_result_dellPC_03_rectangle

< 표1. 기존 알고리즘과 GPU 기반 알고리즘의 연산 시간 비교 화면 >

표1. 의 결과 데이터를 보시면 위쪽의 결과는 기존 시스템에서 HALCON 라이브러리만 사용 한 경우이고 아래쪽의 결과는 이중에서  가장 시간이 오래 걸리는 stain 검출 알고리즘에 대해서 CUDA 로 직접 포팅한 결과입니다.  stain 을 검출하는 알고리즘의 처리시간이 GPU 를 사용하지 않았을 때에 비해서 거의 2.5배 정도의 빠른 속도로 처리가 가능함을 알 수 있습니다. 그 외의 처리는 모두 동일하고 오차 범위는 크지 않다고 봤을때 전체 처리 시간은 약 35% 정도 향상시킬 수가 있습니다.

dellPC_parallel_test_using_OpenMP<표2.  OpenMP 를 사용하여 두 개의 검사를 병렬처리한 경우의 결과 시간 확인 화면 >

표2. 의 결과는 이전의 GPU에서의 처리만 사용한 알고리즘에 OpenMP를 함께 사용하여 동시에 처리가 가능한 부분에 대해서 병렬 처리를 구현했을 때의 결과입니다. chip 검출은 CPU에서 처리하고 동시에 stain 검출을 GPU에서  처리하도록 하였는데 이전 결과에서처럼 두 프로세스를 순차적으로 처리한 경우보다 큰 차이는 나지 않지만 병렬 처리시 조금 더 놀고 있는 코어를 줄일 수 있다는 것을 알 수가 있네요.

 

GPU 를 사용하여 성능 향상을 꾀하는데 사용된 프로세스는 아래의 도표를 보시면 좀 더 명확하게 다가오지 않을까 합니다. 위의 프로세스가 기존 방식을 나타낸 것이고 아래쪽의 프로세스가 최종적으로 GPU 기반의 검사 프로그램을 구현하는데 사용된 프로세스입니다. GPU 를 사용하는 시간에 CPU에서도 작업을 시킴으로 인해서 기존 시스템에 비해 최대한의 속도 향상을 꾀하고자 하였습니다.

process_org

 

 

 

process_gpu_mp

 

 

 

client

< 웨이퍼의 외관 검사 프로그램에서 검사중인 화면을 캡쳐한 화면 >

해당 화면은 태양전지 웨이퍼 외관 검사 프로그램이 동작하고 있는 모습을 캡쳐한 것입니다. 보시는 바와같이 다양한 기능들을 포함하고 있으며 프로그램 내부에서 GPU 를 사용하여 일부 알고리즘을 처리하고 있답니다^^

본 과제를 하면서 아쉬운 부분은 전체 시스템에 대해서 GPU 로 수행하지 못했다는 점인데요. 이에 대해서는 다음번 과제 진행시 검토해 볼수 있었으면 하는 작은(?) 바램이 있습니다. 그리고 여러개의 GPU를 써보고 싶은 생각도 간절했던 과제로 기억됩니다.

 

 

2012년, Projects 에 올린 글 태그됨: , , , , , , ,