Skip to content

SOFT-2528 Pallas PM post + gemini review guide + skills#28

Closed
DongHyunnn wants to merge 1 commit intomainfrom
SOFT-2528-pallas-pm
Closed

SOFT-2528 Pallas PM post + gemini review guide + skills#28
DongHyunnn wants to merge 1 commit intomainfrom
SOFT-2528-pallas-pm

Conversation

@DongHyunnn
Copy link
Copy Markdown
Contributor

이것 저것 많이 추가된 pr이 되어버렸습니다...

  1. JAX 기반의 Pallas 커널 언어의 프로그래밍 모델에 대한 글 작성
  2. claude skills를 이용한 글 개선 스킬 추가
  3. gemini review 스타일가이드 추가

2번과 3번을 통해 향후 테크블로그 작성시 많은 도움 받으실 수 있다면 좋을 것 같습니다.
아주 유용한 기능 중 하나는 이미지를 대강 이미지 폴더 내에 던져 넣어두고 "알맞은 위치에 배치해줘" 하면 굉장히 잘 배치해주면서 이미지 인덱스를 이름에 넣어 정리해줍니다. (제 환경에서는 됐는데 안되시면 코멘트 부탁드립니다!)

@DongHyunnn DongHyunnn self-assigned this Jan 20, 2026
@DongHyunnn DongHyunnn requested a review from a team as a code owner January 20, 2026 10:09
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @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

  • Pallas 프로그래밍 모델 게시물 추가: JAX 기반의 Pallas 커널 언어 프로그래밍 모델에 대한 상세한 기술 블로그 게시물(한국어 및 영어 버전)이 추가되었습니다. 이 게시물은 TPU에서 커스텀 커널을 작성하는 방법과 CUDA와의 비교를 다룹니다.
  • 기술 블로그 작성 가이드 및 검토 스킬 도입: 마크다운 기술 블로그의 스타일 가이드 준수 및 가독성 향상을 위한 Claude 스킬('Well-Writing')과 함께, 상세한 스타일 가이드 및 빠른 참조 체크리스트가 추가되었습니다.
  • 테이블 CSS 스타일링 추가: 웹사이트의 '.post-content' 내 테이블에 테두리 및 호버 효과를 포함한 시각적 스타일이 적용되었습니다.
  • 기존 게시물 형식 개선: 'TPU-deep-dive' 게시물에서 새로운 스타일 가이드에 맞춰 약어 사용 및 볼드체 렌더링 오류가 수정되었습니다.

🧠 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
  • Ignored by pattern: .gemini/** (2)
    • .gemini/config.yaml
    • .gemini/styleguide.md
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

전반적으로, 이번 Pull Request는 JAX 기반 Pallas 커널 언어의 프로그래밍 모델에 대한 글을 추가하고, Claude 스킬을 활용한 글 개선 스킬 및 Gemini 리뷰 스타일 가이드를 도입하여 문서화 및 코드 품질 향상에 기여하고 있습니다. 특히, 새로운 스타일 가이드와 체크리스트는 향후 기술 블로그 작성 시 일관성과 가독성을 높이는 데 매우 유용할 것으로 보입니다. 다만, 스타일 가이드 문서 간의 일부 불일치와 블로그 게시물 내의 긴 문장 및 단락은 개선이 필요합니다. CSS 파일의 !important 사용도 재고해볼 필요가 있습니다.

Comment on lines +176 to +178
- 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**
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

문장 길이(50자) 및 단락 길이(10문장 또는 200자)에 대한 규칙은 기술 문서의 특성을 고려할 때 매우 엄격합니다. 특히 200자 제한은 기술적인 내용을 충분히 설명하기에 너무 짧아 가독성을 저해할 수 있습니다. '유연하게 적용'이라는 단서가 있지만, 실제 적용 시 혼란을 줄 수 있으므로, 기술 문서의 특성을 고려하여 단락 길이에 대한 가이드라인을 좀 더 완화하거나, '유연하게 적용'의 구체적인 기준을 제시하는 것을 고려해볼 수 있습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 정도 길이 제한이 가독성을 위해 적당해보입니다.

Comment on lines +225 to +252
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;
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

CSS 속성에 !important를 과도하게 사용하는 것은 스타일 우선순위를 예측하기 어렵게 만들고, 향후 유지보수를 어렵게 할 수 있습니다. 가능한 한 !important 사용을 피하고, 선택자(selector)의 명확성을 높이거나 CSS 계층 구조를 조정하여 스타일을 적용하는 것을 권장합니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우선 이렇게 했을때 표 양식에 적용되는건 확인했습니다. 기타 오류가 발생한다면 그때 고치는 pr로 만드는걸로...

draft: false
title: 'Know Your Enemy 2.5: Pallas Programming Model'
cover:
image: ""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

커버 이미지가 없는 경우 image: "" 대신 image: null로 설정하거나, 해당 필드를 아예 생략하는 것이 더 명확합니다. 한국어 버전에서는 images/00-main-image.png로 이미지를 지정하고 있으므로, 영어 버전도 적절한 이미지를 지정하거나 null로 명시하는 것이 좋습니다.

Suggested change
image: ""
image: null

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

영어버전에 대해 수정하겠습니다.

image: ""
# can also paste direct link from external site
# ex. https://i.ibb.co/K0HVPBd/paper-mod-profilemode.png
alt: "Pallas Programming Model"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

이미지의 alt 텍스트는 시각 장애가 있는 사용자나 이미지가 로드되지 않을 때 이미지의 내용을 설명하는 중요한 역할을 합니다. 현재 "Pallas Programming Model"은 다소 일반적이므로, 이미지의 구체적인 내용(예: 'Pallas 프로그래밍 모델의 개요 다이어그램' 또는 'Pallas 아키텍처 흐름도')을 더 자세히 설명하는 것이 좋습니다.

Suggested change
alt: "Pallas Programming Model"
alt: "Overview of Pallas Programming Model"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

표지 그림에 대한 것이기때문에 그냥 놔둬도 될거같습니다.

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)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

코드 스니펫에서 N 변수가 정의되지 않았습니다. 예제 코드의 완전성을 위해 N을 명시적으로 정의하거나, 주석으로 설명하는 것이 좋습니다.

Suggested change
result = pl.pallas_call(vector_add_kernel, out_shape=..., grid=(N,))(a, b)
result = pl.pallas_call(vector_add_kernel, out_shape=jax.ShapeDtypeStruct((N,), jnp.float32), grid=(N,))(a, b)

Comment on lines +323 to +324

이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

이 문장들은 매우 길고 복잡하여 가독성이 떨어집니다. 스타일 가이드의 가독성 규칙을 준수하여 문장들을 더 짧게 분리하고 핵심 내용을 명확히 전달하는 것이 좋습니다.

Suggested change
이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다.
이 조합을 통해 데이터 고착(input stationary), 가중치 고착(weight stationary), 출력 고착(output stationary) 등의 타일링 전략과 스트라이드, 배치(batch) 단위의 분산 처리가 효율적으로 설계됩니다. 또한, 동시에 HBM ↔ 온칩 메모리 데이터 전송과 MXU 계산을 겹치게 하면서 전체 파이프라인의 스케줄링 병목을 최소화하는 설계가 가능해졌습니다.

Comment on lines +337 to +338

- **디버깅 및 최적화 도구 필요성**: 프로파일링, 메트릭, 시스템 레벨 관측 도구들 없이 최적화를 진행하기 어렵습니다. 아직 GPU의 CUDA 도구들만큼 성숙하지는 않습니다.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

두 번째 문장이 문장 구성이 불완전합니다. 완전한 문장으로 수정하여 의미를 명확히 하는 것이 좋습니다.

Suggested change
- **디버깅 및 최적화 도구 필요성**: 프로파일링, 메트릭, 시스템 레벨 관측 도구들 없이 최적화를 진행하기 어렵습니다. 아직 GPU의 CUDA 도구들만큼 성숙하지는 않습니다.
프로파일링, 메트릭, 시스템 레벨 관측 도구들 없이 최적화를 진행하기 어렵습니다. 아직 GPU의 CUDA 도구들만큼 성숙하지는 않습니다.


CUDA와의 비교를 통해 Pallas가 더 높은 추상화 수준을 제공하면서도 하드웨어 제어력을 유지한다는 점을 확인했고, Ironwood 세대에서 Pallas가 "Extreme performance"를 위한 핵심 도구로 자리잡고 있음을 살펴봤습니다.

Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

이 문장은 길고 복잡합니다. 스타일 가이드의 가독성 규칙을 준수하여 문장을 더 짧게 나누고 핵심 내용을 명확히 전달하는 것이 좋습니다.

Suggested change
Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다.
Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구입니다.

Comment on lines +352 to +354
Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다.

이제 다시 본 시리즈로 돌아가, 3편에서는 Groq의 LPU(Language Processing Unit)를 분석하며, 또 다른 AI 가속기의 설계 철학과 프로그래밍 모델을 살펴보겠습니다.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

이 문장은 매우 길고 복잡합니다. 스타일 가이드의 가독성 규칙을 준수하여 문장을 더 짧게 분리하고 핵심 내용을 명확히 전달하는 것이 좋습니다.

Suggested change
Pallas는 자동화된 컴파일러와 수동 최적화 사이의 간극을 메우는 중요한 도구로, 최신 알고리즘들이 요구하는 복잡한 메모리 접근 패턴을 효율적으로 처리할 수 있게 해줍니다. 특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다.
이제 다시 본 시리즈로 돌아가, 3편에서는 Groq의 LPU(Language Processing Unit)를 분석하며, 또 다른 AI 가속기의 설계 철학과 프로그래밍 모델을 살펴보겠습니다.
특히 Flash Attention, MoE, Sparse 연산처럼 비표준적인 연산 패턴이 중요해질수록, Pallas와 같은 커스텀 커널 도구의 역할은 더욱 커질 것입니다.

@DongHyunnn
Copy link
Copy Markdown
Contributor Author

문장 길이에 대한 가독성관련 스타일가이드 결과물이 좋지 않음을 확인했습니다. 수정 후 다시 커밋하겠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant