SOFT-2528 Pallas PM post + gemini review guide + skills#28
SOFT-2528 Pallas PM post + gemini review guide + skills#28DongHyunnn wants to merge 1 commit intomainfrom
Conversation
Summary of ChangesHello @DongHyunnn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! 이 PR은 기술 블로그 콘텐츠의 품질과 일관성을 향상시키고, TPU의 고급 프로그래밍 모델인 Pallas에 대한 심층적인 정보를 제공하는 것을 목표로 합니다. 새로운 Claude 스킬과 스타일 가이드를 통해 블로그 작성 및 검토 프로세스를 표준화하고, Pallas 게시물을 통해 JAX 기반 커스텀 커널 개발에 대한 이해를 높입니다. 또한, 웹사이트의 테이블 시각적 표현을 개선하여 전반적인 사용자 경험을 향상시킵니다. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
전반적으로, 이번 Pull Request는 JAX 기반 Pallas 커널 언어의 프로그래밍 모델에 대한 글을 추가하고, Claude 스킬을 활용한 글 개선 스킬 및 Gemini 리뷰 스타일 가이드를 도입하여 문서화 및 코드 품질 향상에 기여하고 있습니다. 특히, 새로운 스타일 가이드와 체크리스트는 향후 기술 블로그 작성 시 일관성과 가독성을 높이는 데 매우 유용할 것으로 보입니다. 다만, 스타일 가이드 문서 간의 일부 불일치와 블로그 게시물 내의 긴 문장 및 단락은 개선이 필요합니다. CSS 파일의 !important 사용도 재고해볼 필요가 있습니다.
| - A paragraph should be approximately **5-7 sentences** | ||
| - Consider splitting if a paragraph has **10 or more sentences** | ||
| - Consider splitting if a paragraph exceeds **200 characters** |
There was a problem hiding this comment.
이 정도 길이 제한이 가독성을 위해 적당해보입니다.
| width: 100% !important; | ||
| border-collapse: collapse !important; | ||
| margin: 1.5rem 0 !important; | ||
| } | ||
|
|
||
| .post-content table thead th, | ||
| .post-content table tbody th { | ||
| border: 1px solid var(--border) !important; | ||
| padding: 16px 24px !important; | ||
| text-align: center !important; | ||
| vertical-align: middle !important; | ||
| } | ||
|
|
||
| .post-content table tbody td { | ||
| border: 1px solid var(--border) !important; | ||
| padding: 16px 24px !important; | ||
| text-align: left !important; | ||
| vertical-align: middle !important; | ||
| } | ||
|
|
||
| .post-content table thead th { | ||
| background-color: var(--code-bg) !important; | ||
| font-weight: 600 !important; | ||
| } | ||
|
|
||
| .post-content table tbody tr:hover { | ||
| background-color: var(--code-bg) !important; | ||
| } |
There was a problem hiding this comment.
우선 이렇게 했을때 표 양식에 적용되는건 확인했습니다. 기타 오류가 발생한다면 그때 고치는 pr로 만드는걸로...
| draft: false | ||
| title: 'Know Your Enemy 2.5: Pallas Programming Model' | ||
| cover: | ||
| image: "" |
There was a problem hiding this comment.
영어버전에 대해 수정하겠습니다.
| image: "" | ||
| # can also paste direct link from external site | ||
| # ex. https://i.ibb.co/K0HVPBd/paper-mod-profilemode.png | ||
| alt: "Pallas Programming Model" |
There was a problem hiding this comment.
There was a problem hiding this comment.
표지 그림에 대한 것이기때문에 그냥 놔둬도 될거같습니다.
| def vector_add_kernel(a_ref, b_ref, c_ref): | ||
| c_ref[...] = a_ref[...] + b_ref[...] | ||
|
|
||
| result = pl.pallas_call(vector_add_kernel, out_shape=..., grid=(N,))(a, b) |
There was a problem hiding this comment.
|
|
||
| 이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다. |
There was a problem hiding this comment.
이 문장들은 매우 길고 복잡하여 가독성이 떨어집니다. 스타일 가이드의 가독성 규칙을 준수하여 문장들을 더 짧게 분리하고 핵심 내용을 명확히 전달하는 것이 좋습니다.
| 이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다. | |
| 이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다. |
|
|
||
| - **디버깅 및 최적화 도구 필요성**: 프로파일링, 메트릭, 시스템 레벨 관측 도구들 없이 최적화를 진행하기 어렵습니다. 아직 GPU의 CUDA 도구들만큼 성숙하지는 않습니다. |
|
|
||
| CUDA와의 비교를 통해 Pallas가 더 높은 추상화 수준을 제공하면서도 하드웨어 제어력을 유지한다는 점을 확인했고, Ironwood 세대에서 Pallas가 "Extreme performance"를 위한 핵심 도구로 자리잡고 있음을 살펴봤습니다. | ||
|
|
||
| Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다. |
There was a problem hiding this comment.
이 문장은 길고 복잡합니다. 스타일 가이드의 가독성 규칙을 준수하여 문장을 더 짧게 나누고 핵심 내용을 명확히 전달하는 것이 좋습니다.
| Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다. | |
| Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구입니다. |
| Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다. | ||
|
|
||
| 이제 다시 본 시리즈로 돌아가, 3편에서는 Groq의 LPU(Language Processing Unit)를 분석하며, 또 다른 AI 가속기의 설계 철학과 프로그래밍 모델을 살펴보겠습니다. |
There was a problem hiding this comment.
이 문장은 매우 길고 복잡합니다. 스타일 가이드의 가독성 규칙을 준수하여 문장을 더 짧게 분리하고 핵심 내용을 명확히 전달하는 것이 좋습니다.
| Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다. | |
| 이제 다시 본 시리즈로 돌아가, 3편에서는 Groq의 LPU(Language Processing Unit)를 분석하며, 또 다른 AI 가속기의 설계 철학과 프로그래밍 모델을 살펴보겠습니다. | |
| 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다. |
|
문장 길이에 대한 가독성관련 스타일가이드 결과물이 좋지 않음을 확인했습니다. 수정 후 다시 커밋하겠습니다. |
37ec830 to
7148bca
Compare
이것 저것 많이 추가된 pr이 되어버렸습니다...
2번과 3번을 통해 향후 테크블로그 작성시 많은 도움 받으실 수 있다면 좋을 것 같습니다.
아주 유용한 기능 중 하나는 이미지를 대강 이미지 폴더 내에 던져 넣어두고 "알맞은 위치에 배치해줘" 하면 굉장히 잘 배치해주면서 이미지 인덱스를 이름에 넣어 정리해줍니다. (제 환경에서는 됐는데 안되시면 코멘트 부탁드립니다!)