Mojo 🔥: Programming language for all of AI
Mojo combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models.
www.modular.com
며칠 전 Mojo가 공식 출시되었다. Mojo는 파이썬의 느린 실행 속도를 개선하기 위해 제작한 언어로, 기존에 파이썬으로 작성되어 있던 딥러닝 코드들을 Mojo로 옮겨 실행하면 얼마나 빨라질지 궁금해졌다.

이번 포스팅에서는 Mojo를 설치하고 실행하는 방법에 대해 알아보자.
Mojo SDK
Mojo SDK는 Mojo의 기본 라이브러리와 Mojo CLI를 포함한다.
Mojo SDK를 설치하기 위해서는 아래의 기본 사양을 만족해야 한다.
- Ubuntu 20.04/22.04 LTS
- x86-64 CPU (SSE4.2 또는 더 최신) 와 최소 8GiB의 메모리
- Python 3.8 - 3.10
- g++ 또는 clang++ C++ 컴파일러
Windows와 MacOS 운영체제는 아직까지 지원하지 않는다. (2023.09.13 기준)
Mojo SDK 설치
Modular Docs - Get started with Mojo🔥
Get the Mojo SDK or try coding in the Mojo Playground.
docs.modular.com
환경 변수 설정
modular install mojo 명령어를 통해 mojo를 설치한 뒤, MODULAR_HOME와 PATH 환경 변수를 설정해야 한다.
bash 환경에서는 아래와 같이 환경 변수를 설정한다.
echo 'export MODULAR_HOME="$HOME/.modular"' >> ~/.bashrc
echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
REPL에서 코드 실행
REPL이란 Read-Eval-Print-Loop의 약자로 사용자가 입력한 코드를 읽고(Read) 명령어를 평가한 뒤(Eval), 결과를 출력한(Print) 다음 다시 입력을 기다리는 과정을 반복하는(Loop) 환경이다. 파이썬의 IDLE이 대표적인 REPL 환경이다.

터미널에 mojo를 입력하여 Mojo REPL 환경을 시작할 수 있다.
$ mojo
Welcome to Mojo! 🔥
Expressions are delimited by a blank line.
Type `:mojo help` for further assistance.
1> print("Hello, world!")
2.
Hello, world!
코드 작성을 완료했음을 나타내기 위해서 마지막 한 줄을 비워야 한다.
Mojo 소스 파일 빌드 및 실행
Mojo 소스 파일은 .mojo 또는 .🔥의 파일 확장자를 갖는다.
mojo의 파일 확장자에서 .🔥의 의미
Modular Docs - Mojo🔥 FAQ
Answers to questions we expect about Mojo.
docs.modular.com
Mojo 파일을 실행할 수 있는 방법은 두가지가 있다.
- mojo 명령어를 통해 소스 파일 실행
- mojo build 명령어를 통해 소스 파일을 바이너리 파일로 빌드한 뒤 실행
mojo 명령어를 통해 소스 파일 실행
1. hello.mojo 또는 hello.🔥 파일을 생성한 뒤 아래 코드를 추가한다.
fn main():
print("Hello, world!")
2. mojo 명령어를 통해 파일을 실행한다.
mojo hello.mojo
# 출력
Hello, world!
mojo build 명령어를 통해 소스 파일을 바이너리 파일로 빌드한 뒤 실행
1. mojo build 명령어를 통해 바이너리 파일을 빌드한다.
mojo build hello.mojo
위 명령어를 입력할 경우, 바이너리 파일의 이름은 mojo 소스파일과 동일하다. -o 옵션을 사용하여 바이너리 파일의 이름을 변경할 수 있다.
2. 바이너리 파일을 실행한다.
./hello
바이너리 파일로 빌드할 경우 CPU 아키텍쳐가 동일한 모든 시스템에서 해당 바이너리 파일을 실행시킬 수 있다.
'AI > 기타' 카테고리의 다른 글
[Mojo] 모듈과 패키지 (0) | 2023.09.24 |
---|---|
[Mojo] Mojo 기초 문법 (0) | 2023.09.22 |
Huggingface Trainer compute_metrics 파헤치기 (0) | 2023.06.21 |
HuggingFace Hub에 모델 업로드 (2) | 2023.05.18 |
argparse, omegaconf로 실험 환경 구성하기 (0) | 2023.05.12 |