MATLAB(매트랩) 호환 런타임인 RunMat이 MATLAB 코드의 정수형 데이터 지원을 대폭 확장하며 개발자들의 주목을 받고 있습니다. 기존 MATLAB 환경에서는 숫자 리터럴(literal)과 배열이 기본적으로 부동소수점(double)으로 처리되어, 정수형 데이터를 사용할 때마다 명시적인 변환이 필요한 경우가 많았습니다. 특히, 많은 내장 함수들이 정수형 입력을 지원하지 않아 비효율적인 코드 작성과 잠재적인 정밀도 손실 문제가 발생하곤 했습니다.
RunMat은 이러한 문제를 해결하기 위해 int8, int16, int32, int64, uint8, uint16, uint32, uint64 등 8가지 고정폭 정수형을 런타임 전반에 걸쳐 지원합니다. 이를 통해 MATLAB 구문 프로그램은 정수형 배열을 생성하고 연산하며, 인덱싱 및 할당에 사용하고, 컴파일 및 저장/불러오기, 심지어 GPU에서 지원되는 연산까지 수행할 수 있게 되었습니다. RunMat은 총 787개의 내장 함수에 걸쳐 1,476개의 정수형 관련 형태를 감사했으며, 그중 632개 형태를 MATLAB보다 확장 지원합니다. 이는 감사 대상 표면의 43%에 해당합니다. 예를 들어, MATLAB에서는 `corr` 함수가 `uint16` 입력을 지원하지 않아 `double()`로 명시적 변환이 필요했지만, RunMat에서는 `corr(samples)`와 같이 `uint16` 배열을 직접 전달할 수 있습니다. 결과는 여전히 부동소수점으로 나오지만, 변환은 계산이 실제로 필요할 때만 이루어져 효율성을 높입니다.
이번 RunMat의 정수형 지원 확장은 과학, 공학, 데이터 분석 분야의 개발자들에게 상당한 이점을 제공할 것으로 보입니다. 센서 데이터와 같이 정수형으로 수집되는 데이터를 통계 함수에 직접 입력하거나, 차원(dimension)이나 인덱스(index)를 부동소수점 변환 없이 정수형 그대로 처리할 수 있게 됩니다. 이는 코드의 가독성을 높이고, 불필요한 데이터 변환으로 인한 오류 가능성을 줄이며, 특히 대규모 데이터셋 처리 시 성능 향상에도 기여할 수 있습니다. RunMat은 기본적으로 확장된 기능을 제공하며, 필요에 따라 MATLAB 호환 모드로 전환하여 기존 MATLAB 환경과의 일관성을 유지할 수도 있습니다. 이러한 유연성은 개발자들이 더욱 효율적이고 정확하게 수치 계산 프로그램을 작성할 수 있도록 돕는 중요한 진전입니다.
