Hacker News 의견
  • CORDIC 알고리즘은 FPGA뿐만 아니라 게임 개발이나 분산 물리 시뮬레이션 등에도 활용 가능함. 부동 소수점 계산은 플랫폼 간 결정론적 동작을 보장하기 어려운데, 고정 소수점 물리 엔진을 구현하고 CORDIC으로 삼각 함수를 구현하는 것이 한 가지 해결책이 될 수 있음.

  • CORDIC은 사인, 코사인 뿐만 아니라 로그, 지수, 제곱근, 벡터 크기, 극좌표-직교좌표 변환, 벡터 회전 등 다양한 연산에 활용 가능함. 사원수(쿼터니언)를 이용하면 CORDIC 기반 연산을 더 효율적이고 정확하게 수행할 수 있을 것으로 보임.

  • 고등학교 예비 미적분 수업에서 계산기의 삼각함수 구현에 대해 배웠는데, 테일러 급수가 아니라 사실은 CORDIC이었다는 것을 알고 TI Basic으로 직접 구현해 본 경험담 공유.

  • 2023년 현재 STM32G4 같은 저가형 MCU에도 FPU가 내장되어 있어서 고정 소수점 대신 부동 소수점을 자유롭게 쓸 수 있음. 하지만 G4에는 전용 하드웨어로 구현된 CORDIC 주변장치도 있는데, 이는 부동 소수점 정밀도 손실을 피하기 위한 것으로 보임.

  • 22.75° 회전은 45° 회전 후 -22.5° 회전과 같다는 설명에 오류가 있는 것 같음. 22.5°가 맞는 것 같음.

  • Meagher의 옥트리 시스템은 정수 곱셈/나눗셈 없이 정수 연산만으로 구현되었음. 이는 옥트리 표현을 위한 빠르고 주문 제작된 VLSI 그래픽 가속 하드웨어 제작을 용이하게 함.

  • CORDIC은 각도에 대한 Farey 수열(또는 mediant, naive 분수 합)과 비슷한 개념으로 볼 수 있음.

  • CORDIC은 4비트 CPU를 탑재한 빈티지 프로그래머블 HP 계산기에서도 구현되었음. 사인 함수의 테일러 전개를 이용한 근사법도 프로그래밍 가능함.

  • 이 글이 마음에 들었다면 수학 알고리즘을 예제와 함께 설명한 도널드 커누스의 명저 "The Art of Computer Programming"을 읽어보는 것도 좋음.

  • CORDIC은 예전 DSP 분야에서 큰 인기를 끌었던 알고리즘임.

  • 멋진 알고리즘이며, 낮은 성능의 하드웨어에서 신경망을 실행하는 데에 유용할 것 같음.