프로그래밍 언어 · 1 min read · Oct 20, 2025

이 새로운 함수형 프로그래밍 언어는 앱을 위한 C, Python 코드를 생성할 수 있습니다

Futhark 사용은 기계 학습 및 기타 수학 집약적 앱을 가속화하는 GPU 프로그래밍을 더 쉽게 만듭니다

코펜하겐 대학교 컴퓨터 과학부의 연구자들이 최근 Futhark를 공개했습니다. Futhark는 기계 학습 및 기타 고성능 애플리케이션에서 실행되는 코드를 생성하기 위해 설계된 오픈 소스 함수형 프로그래밍 언어입니다.

연구자들은 Futhark가 GPU 프로그래밍을 위한 표준 C/C++ 프레임워크보다 사용하기 더 편리하다고 말했습니다. Futhark의 주요 특징은 기존 앱과 통합할 수 있는 C 및 Python 코드를 자동으로 생성할 수 있다는 것입니다. Futhark는 Haskell로 작성되었습니다.

현재 대부분의 GPU 프로그래밍은 OpenCL 또는 CUDA와 같은 프레임워크를 사용하는데, 이들 모두는 GPU에서 실행되는 코드를 생성하기 위해 C 또는 C++의 변형을 사용합니다. Futhark는 어떤 프레임워크도 사용하지 않고 C 코드를 생성할 수 있지만, C보다는 Haskell이나 Standard ML에 더 유사한 자체 언어입니다.

Futhark의 제작자들은 이 언어의 표현력이 병렬성을 사용하는 복잡한 작업을 설명하는 것을 더 쉽게 만든다고 주장합니다. 여기에는 중첩된 병렬화(다른 병렬 작업 내의 병렬 작업)를 지원하는 능력이 포함됩니다. Futhark는 “하드웨어가 지원하는 평면 병렬성에 효율적으로 매핑하는 복잡성에도 불구하고” 이를 수행할 수 있습니다. 많은 프로그램이 이 기능에 의존합니다.

연구자들의 주장은 근거가 없는 것이 아닙니다. Futhark GPU 프로그램과 다른 GPU 라이브러리를 비교한 초기 벤치마크는 유망한 결과를 보여주었습니다. 최대 세그먼트 합 테스트에서 Futhark는 경쟁하는 오픈 소스 프로젝트보다 거의 두 배 빠른 성능을 보였습니다. 다른 경우에는 경쟁과 비슷하거나 약간 느린 수준이었습니다. Futhark의 개발자들은 이를 언어의 새로움과 메모리 할당 및 재사용에 대한 다듬어지지 않은 접근 방식 때문이라고 설명했습니다.

현재 Futhark 툴체인은 CPU 또는 GPU에서 실행할 수 있는 코드를 생성할 수 있으며, 다양한 대상을 지원합니다. 전자의 경우, GCC로 컴파일된 C 코드를 생성하고; 후자의 경우, OpenCL 플랫폼을 사용하는 C 코드를 생성합니다. 따라서 사용 가능한 하드웨어에서 실행되는 동일한 코드를 지원하며, GPU 가속 앱인 MapD 데이터베이스가 필요할 경우 CPU를 사용하는 것과 유사한 방식입니다.

속도 향상을 원하는 Python 사용자는 Futhark로 자동으로 래핑된 코드를 생성할 수 있습니다. GPU 코드는 GPU와 인터페이스하기 위한 라이브러리인 PyOpenCL을 통해 실행됩니다. Conway의 생명 게임의 Futhark 기반 GPU 구현과 같은 예가 있습니다.

Futhark는 아직 진행 중인 작업이며, 개발자들은 다른 연구자와 개발자들을 위해 코드를 GitHub에 올렸습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.