더 빠른 asin()이 바로 내 앞에 있었다
Estrin 기법을 활용한 asin() 함수 근사 최적화에 관한 글입니다.
기존의 Cg asin() 근사 구현을 Estrin의 스킴으로 재작성하여, 다항식 계산의 의존성 체인을 줄이고 명령어 수준 병렬성(Instruction-level parallelism)을 극대화했습니다.
다양한 CPU와 컴파일러 환경에서 벤치마크를 수행한 결과, 특히 인텔 CPU에서 최대 1.8배의 성능 향상을 확인했으며, AMD와 Apple 칩에서는 상대적으로 미미한 효과를 보였습니다.
실제 레이트레이싱 렌더링 테스트에서는 asin() 호출 비중이 낮아 체감 성능 향상은 약 3% 수준이었으나, 코드 구조 개선과 벤치마킹의 중요성을 강조하며, 근사 수학 공식 사용의 실용적 가치를 제시합니다.
본 최적화는 정확한 arcsine 함수가 아닌 근사값임을 유념해야 하며, SIMD 적용은 아키텍처 제약으로 현재는 어려운 상황임을 덧붙였습니다.