LLVM의 창시자인 Chris Lattner가 만든 새로운 프로그래밍 언어인 Mojo

모조 랑

Mojo는 기계 학습 개발을 위한 더 나은 성능을 약속하는 새로운 프로그래밍 언어입니다.

며칠 전 뉴스가 터졌다. 크리스 래트너, LLVM의 설립자이자 수석 설계자이며 팀 데이비스, Google의 전 AI 프로젝트 책임자 새로운 프로그래밍 언어인 "Mojo" 출시, Python 구현 및 성능 문제를 해결하는 Python을 기반으로 합니다.

모조라고 한다 해적 R&D를 위한 사용 편의성 결합 고성능 최종 제품에 적합한 신속한 시제품 제작. 전자는 Python 언어의 친숙한 구문을 사용하여 달성되며 후자는 기계 코드로 컴파일할 수 있는 기능, 안전한 메모리 관리를 위한 메커니즘 및 계산의 하드웨어 가속을 위한 도구 사용으로 인해 달성됩니다.

모조 소개

이 새로운 프로그래밍 언어 기계 학습 개발에 사용하는 데 중점을 둡니다., 하지만 예e 범용 언어로 제시 시스템 프로그래밍으로 Python 언어의 기능을 확장하고 다양한 작업에 적합합니다.

예를 들어 이 언어는 고성능 컴퓨팅, 데이터 처리 및 데이터 변환과 같은 영역에 적용할 수 있습니다. Mojo의 흥미로운 기능은 "🔥" 이모티콘 기호를 코드 파일의 확장자로 지정하는 기능입니다.

이 프로젝트는 하드웨어 리소스를 포함하도록 설계되었습니다. 계산에서 시스템에서 사용할 수 있는 시스템의 예를 들어 GPU, 특수 기계 학습 가속기 및 SIMD(벡터 처리 명령)를 사용하여 Mojo 애플리케이션을 실행하고 계산을 병렬화할 수 있습니다.

기존 CPython 최적화 작업에 합류하지 않고 Python 언어의 별도 하위 집합을 개발하는 이유는 다음과 같습니다.

빌드 접근 방식, 시스템의 프로그래밍 기능 통합, 근본적으로 다른 내부 아키텍처를 사용하여 GPU 및 다양한 하드웨어 가속기에서 코드를 실행할 수 있습니다. 동시에 Mojo 개발자는 CPython 지원을 최대한 고수하려고 합니다.

Mojo는 JIT 해석 모드와 실행 파일로 컴파일하는 데 모두 사용할 수 있습니다. (AOT, 미리). 컴파일러에는 자체 최적화, 캐싱 및 분산 컴파일을 위한 최신 기술이 내장되어 있습니다.

코드 Mojo 언어의 소스 코드는 저수준 중간 코드로 변환됩니다. LLVM 프로젝트에서 개발하고 데이터 흐름 그래프 처리를 최적화하기 위한 추가 기능을 제공하는 MLIR(Multi-Level Intermediate Representation).

추가 하드웨어 메커니즘을 사용하여 계산 속도를 높이면 집약적인 계산을 통해 C/C++ 응용 프로그램보다 뛰어난 성능을 얻을 수 있습니다.

Chris Lattner는 오늘날 우리 모두가 의존하는 많은 프로젝트를 만드는 데 책임이 있습니다. 비록 우리는 그가 만든 모든 것을 들어본 적이 없을지라도 말입니다! 그는 박사 학위 논문의 일부로 LLVM 개발을 시작했는데, 이는 컴파일러 구축 방식을 근본적으로 바꾸었고 오늘날 세계에서 가장 널리 사용되는 많은 언어 생태계의 기반을 형성합니다.

그런 다음 그는 LLVM 위에 위치하며 세계 최고의 소프트웨어 개발자 대부분이 사용하는 C 및 C++ 컴파일러인 Clang을 출시했습니다(성능에 중요한 코드의 백본 제공 포함). 

기계 학습 문제 해결 분야의 성능을 평가할 때 Mojo 언어로 작성된 Modular Inference Engine AI 스택은 TensorFlow 라이브러리 기반 솔루션에 비해 Intel 프로세서가 탑재된 시스템에서 3배 더 빠른 것으로 나타났습니다.

그러나 Chris는 C 및 C++가 LLVM의 기능을 충분히 활용하지 못하고 있다는 사실을 알고 Apple에서 근무하는 동안 "Swift"라는 새로운 언어를 설계했으며 이를 "LLVM용 구문 설탕"이라고 설명했습니다. 

언급 할 가치가 있습니다. 언어는 정적 타이핑 및 안전한 저수준 메모리 기능을 지원합니다. 이는 참조 수명 추적 및 변수 차용(대출 검사기)과 같은 Rust 기능을 연상시킵니다.

포인터를 사용한 안전한 작동 수단 외에도 언어 저수준 작업을 위한 기능도 제공하며, 예를 들어 포인터 유형을 사용하여 안전하지 않은 모드에서 메모리에 직접 액세스하거나 개별 SIMD 명령어를 호출하거나 TensorCores 및 AMX와 같은 하드웨어 확장에 액세스할 수 있습니다.

현재, 언어는 집중적으로 발전하고 있습니다 인터페이스 만 제공됩니다 온라인으로 시도하십시오. 향후 약속은 대화형 웹 환경 작업에 대한 피드백을 받은 후 나중에 로컬 시스템에서 실행할 별도의 빌드를 릴리스하는 것입니다.

컴파일러의 오픈 소스 코드, JIT 및 기타 프로젝트 관련 개발은 내부 아키텍처 설계가 완료된 후 계획됩니다(닫힌 작업 프로토타입의 개발 모델은 LLVM, Clang 및 Swift 개발 초기 단계와 유사함).

Mojo의 구문은 Python을 기반으로 하고 유형 시스템은 C/C++에 가깝기 때문에 앞으로 C/C++ 및 Python으로 작성된 기존 프로젝트를 Mojo로 쉽게 변환할 수 있는 도구 세트를 개발할 계획입니다. Python과 Mojo 코드를 결합한 하이브리드 프로젝트를 개발합니다.

마지막으로, 그것에 대해 더 알고 싶다면 자세한 내용을 참조하십시오. 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   제이미

    흥미로운 케른이… (악센트 없음)