핵심 병렬화와 튜닝
스레드를 추가하고 컴퓨터에 맞춰 자동 튜닝합니다.
핵심 병렬화와 튜닝은(는) CoddyKit의 무료 Mojo Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Mojo Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Mojo Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
빠름에서 더 빠름으로
이제 커널은 코어 하나에서도 Python보다 빠릅니다. 다음으로 모든 코어에 작업을 분산하고 Mojo가 컴퓨터에 맞게 조정하도록 하십시오. ⚡
병렬화하는 이유
현대 CPU에는 놀고 있는 코어가 많습니다. 병렬성을 사용하면 각 코어가 데이터의 일부를 동시에 처리하여 크게 속도를 높일 수 있습니다.
parallelize 알아보기
Mojo의 parallelize는 반복문의 chunk를 여러 스레드에서 대신 실행합니다. 작업과 이를 나눌 조각의 수를 지정하면 됩니다.
from algorithm import parallelize클로저로 작업 감싸기
작업의 한 chunk를 작은 함수 하나로 표현하십시오. parallelize는 각 chunk마다 한 번씩 해당 함수를 호출하며, 각 호출은 자체 코어에서 실행됩니다.
fn work(chunk: Int):
process(chunk)
parallelize[work](num_chunks)범위 나누기
데이터를 코어마다 하나씩 배정되도록 거의 같은 크기의 chunk로 나누십시오. 균형 잡힌 조각을 사용하면 한 스레드가 뒤처지지 않고 모든 스레드가 계속 작업할 수 있습니다.
var per_chunk = n // num_chunks스레드에 SIMD 적용하기
각 chunk 안에서 SIMD 계산을 유지하십시오. 그러면 두 가지 이점을 동시에 얻습니다. 여러 코어가 각각 한 명령마다 벡터를 계산합니다.
데이터 경쟁 피하기
두 스레드가 같은 위치에 쓰면 데이터 경쟁이 발생합니다. 각 chunk에 자체 출력 구간을 할당하여 쓰기가 서로 충돌하지 않게 하십시오.
조정 가능한 매개변수 노출하기
타일 크기와 SIMD 너비를 매개변수로 바꾸십시오. 조정 손잡이를 마련하면 커널을 다시 작성하지 않고도 여러 설정을 시도할 수 있습니다.
fn kernel[tile: Int, width: Int]():
pass자동 조정으로 탐색하기
최적의 설정은 컴퓨터마다 다릅니다. 자동 조정은 후보 매개변수 값을 시도하고 각각의 시간을 측정한 뒤 가장 빠른 조합을 유지합니다.
최적 설정 확정하기
가장 좋은 타일과 너비를 알게 되면 이를 선택한 구성으로 고정하십시오. 이제 커널은 하드웨어에 맞게 특화되었습니다.
병렬 처리에서 검증하기
조정한 스레드 기반 커널을 실행하고 기준 구현과 비교합니다. 여러 코어가 동시에 기록하더라도 정확성은 여전히 유지되어야 합니다.
빠른 확인
핵심을 병렬화할 때 실제 위험 요소를 고르세요.
복습
균형 잡힌 작업 단위에 병렬화를 적용하고, 각 작업 단위 안에서는 SIMD를 유지했으며, 데이터 경합을 피한 다음 매개변수를 자동으로 조정했습니다. 이제 핵심은 여러 코어에서 빠르게 실행됩니다. 🎯
AI 튜터와 함께 Mojo을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“핵심 병렬화와 튜닝” 강의는 무료인가요?
네 — “핵심 병렬화와 튜닝” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Mojo Academy 강의 전체를 잠금 해제할 수 있습니다. Mojo Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“핵심 병렬화와 튜닝”에서 뭘 배우나요?
스레드를 추가하고 컴퓨터에 맞춰 자동 튜닝합니다. 브라우저에서 직접 실행하는 실습 코드로 Mojo Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Mojo Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Mojo Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“핵심 병렬화와 튜닝” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Mojo Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Mojo Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.