Parallelization and Performance Optimization of the Boyer-Moore Algorithm on GPU
Boyer-Moore 알고리즘을 위한 GPU상에서의 병렬 최적화

Yosang Jeong, Nhat-Phuong Tran, Myungho Lee, Dukyun Nam, Jik-Soo Kim, Soonwook Hwang
2015 KIISE Transactions on Computing Practices  
GPU Nvidia Tesla K20 (5GB, 2496 CUDA core) OS CentOS 6.3 4.2 실험 결과 해당 실험은 타겟의 크기를 4,000MB로 고정하고 패턴 의 길이는 5, 10, 15, 25, 50으로 다양하게 설정하였으며, GPU 병렬처리의 경우 ACC의 계수는 64로 설정하였다. 그 결과 순차적인 처리와 비교하여 ACC를 적용하지 않 은 경우 대비 최대 37배의 성능 향상이, ACC를 적용한 경우 최대 45배의 성능향상이 있었다. ACC의 적용 여부 에 따라 최대 35%, 평균 26%의 성능 차이가 있었다. 그러나, 그림 8과 그림 9에서 볼 수 있듯이 패턴의 길 이가 길어질수록 throughput은 증가하지만 speedup의 정도가 떨어지는 것을 볼 수 있다. 이는 패턴의 길이가 길어질수록 3.2절에서 언급한 중복되어 복사되는 데이터 의 길이가 길어지기 때문이다. 중복되는 데이터의 양은 ACC 계수 * 블록 수 * (블록 당 스레드 수*[패턴길이
more » ... 되는데, 해당 성능실험에서는 ACC를 64로 설정 하였고 패턴길이 50의 경우 21,730개의 블록과 128개의 스레드가 사용되었다. 따라서 총 8,722,595,840의 중복문 자에 대한 연산을 수행한 것이다. 이는 실제의 입력 데이 터의 양과 비교하여 2배가 넘는 양으로서 실제적으로 패 턴 매칭 연산량의 큰 증가로 이어진다. 따라서 이러한 중 복 데이터의 양을 최소화하는 것이 필수적이다.
doi:10.5626/ktcp.2015.21.2.138 fatcat:juy7lg352bfa3jspflfnru7hqy