1993년, 부동소수점 없는 25MHz 486-SX로 1024x768 GPS 이동 지도를 2초마다 갱신한 계약 개발기
- 1993년 25MHz 486-SX(부동소수점 보조 프로세서 없음), 32MB RAM, ROM에 굽는 소프트웨어 구성으로 1024x768 컬러 화면을 2초마다 갱신하는 실시간 GPS 이동 지도 표시기를 계약받아 개발함
- Dr. Dobb's Journal 기사에 소개된 Geodesy의 Hipparchus 라이브러리를 사용함. 보로노이 셀(Voronoi Cell)로 계산 대부분을 8/16비트 정수로 처리하고 단정밀도 부동소수점 연산을 한두 번만 써서, 확장 정밀도 부동소수점보다 해상도가 오히려 높았음
- 자사 구현이 Garmin·Magellan의 첫 소비자용 GPS보다 5년 앞섰고 그 기기들보다 두 배 빨랐으며, 비슷한 성능의 소비자용 GPS는 10년 뒤에야 나왔다고 주장함. 1세대 소비자 기기 화면은 360x240 흑백이었음
- 클라이언트가 재정 문제로 흔들리면서 산출물 전부를 넘겨야 했고 이후 어떻게 됐는지 모름. 계약자라 IP를 못 가졌지만 Phoenix Technologies의 클린룸 BIOS 사례처럼 명세만 갖고 처음부터 다시 만들 수도 있었다고 씀
- 댓글에서 Hipparchus가 현재 geodyssey.github.io에 공개돼 있고 Microsoft로 넘어간 것으로 보인다고 지적함
Hacker News opinions
보로노이 셀에 정수 연산으로 계산을 줄이는 방식, LLM 추론에도 쓸 수 있나 궁금하네
그게 바로 양자화 같은 거임. 몇 년 전부터 모든 신경망 종류에 쓰던 기법이고 LLM만 그런 게 아님
재밌는 프로젝트네, 계속 해봐
글에 나온 라이브러리는 geodyssey.github.io 이거 같음. lukatela.com/geodyssey에도 있더라
나도 2002년에 보다폰 쪽으로 차량 관제 시스템 만들었음. 타일 지도에 트랜스 머케이터 투영 라이브러리를 직접 짰었는데, Mercator가 곧 유행에서 밀릴 수도 있겠더라
내비게이션에선 안 밀림. 구글 맵이나 애플 맵도 Mercator 변형을 쓰는 이유가 방향 안내에 더 낫기 때문임. UN이 미는 Equal Earth는 대륙 크기를 공정하게 보여주자는 도덕적 문제고
실시간 GPS 이동 지도보다 열잡음에서 신호를 끌어올리는 아날로그 기술이 더 흥미롭지 않나
그게 어떤 기술인지 궁금한데?
위치 계산은 조잡한 삼각함수 근사로도 오차가 크지 않음. 반경 수백 km 안이면 오차가 수십 미터 수준이고, 500m 안으로 들어가면 연기 기둥 보고 찾아가면 됨
Y2K 때 PC104 리눅스에 GPS, 9600 보드 이중 채널 이동통신 링크, 느린 영상 피드까지 붙여서 만들었음. 그 시절 이동통신 데이터는 그냥 PSTN 모뎀 기술이라 음성 압축을 고려하지 않아서 굉장히 손실 많고 느렸음
Fenix 8에서 Fenix 9급 지도 렌더러가 가능한지 Fable로 시도해봤는데, QEMU 단일 코어에서 상세 벡터 지도를 15fps 넘게 뽑아냈음