From 3f2ae7e80964ff8013720259a918c3feeb53f8bc Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 17 Feb 2026 20:58:52 +0100 Subject: [PATCH 1/5] fix error handler --- frontend/src/App.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 031e31a..446875c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -73,7 +73,7 @@ function App() { } /> } /> } /> - // error handling page + {/* error handling page */} {errorRoutes.map(({ path, code, title, description }) => ( Date: Tue, 17 Feb 2026 20:59:06 +0100 Subject: [PATCH 2/5] markdown renderer --- .../markdown-renderer/MarkdownRenderer.tsx | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/frontend/src/components/markdown-renderer/MarkdownRenderer.tsx b/frontend/src/components/markdown-renderer/MarkdownRenderer.tsx index d0b8d35..95dddaa 100644 --- a/frontend/src/components/markdown-renderer/MarkdownRenderer.tsx +++ b/frontend/src/components/markdown-renderer/MarkdownRenderer.tsx @@ -5,6 +5,8 @@ import rehypeRaw from "rehype-raw"; import remarkGfm from "remark-gfm"; import remarkMath from "remark-math"; import { useTheme } from "@mui/material/styles"; +import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; +import { oneDark, oneLight } from "react-syntax-highlighter/dist/esm/styles/prism"; import "katex/dist/katex.min.css"; type MarkdownRendererProps = { @@ -49,6 +51,7 @@ const MarkdownRenderer: React.FC = ({ const mergedImageProps = { ...defaultImageProps, ...imageProps }; const { align, ...styleProps } = mergedImageProps; const theme = useTheme(); + const syntaxTheme = theme.palette.mode === "dark" ? oneDark : oneLight; return ( = ({ ); }, + code: ({ node: _node, className, children, ...props }) => { + const langMatch = /language-(\w+)/.exec(className ?? ""); + const code = String(children).replace(/\n$/, ""); + const isBlock = !!langMatch || code.includes("\n"); + + if (isBlock) { + return ( + + {code} + + ); + } + + return ( + + {children} + + ); + }, }} > {content} From c5d72ce40f7632bc98157b5ba7a1eb07f9744cc7 Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 17 Feb 2026 20:59:17 +0100 Subject: [PATCH 3/5] add a modal --- frontend/src/pages/home/Home.tsx | 36 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/frontend/src/pages/home/Home.tsx b/frontend/src/pages/home/Home.tsx index 81f3880..4e1939f 100644 --- a/frontend/src/pages/home/Home.tsx +++ b/frontend/src/pages/home/Home.tsx @@ -1,6 +1,14 @@ -import { Box, Button, Typography } from "@mui/material"; +import { + Box, + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Typography, +} from "@mui/material"; import Grid from "@mui/material/Grid"; -import { useEffect } from "react"; +import { useEffect, useState } from "react"; import { useSearchParams } from "react-router-dom"; import { fetchLeaderboardSummaries } from "../../api/api"; import { fetcherApiCallback } from "../../lib/hooks/useApi"; @@ -8,7 +16,8 @@ import { ErrorAlert } from "../../components/alert/ErrorAlert"; import LeaderboardTile from "./components/LeaderboardTile"; import Loading from "../../components/common/loading"; import { ConstrainedContainer } from "../../components/app-layout/ConstrainedContainer"; -import ArrowOutwardIcon from "@mui/icons-material/ArrowOutward"; +import MarkdownRenderer from "../../components/markdown-renderer/MarkdownRenderer"; +import quickStartMarkdown from "./quick-start.md?raw"; interface TopUser { rank: number; @@ -32,6 +41,7 @@ interface LeaderboardSummaries { export default function Home() { const [searchParams] = useSearchParams(); + const [isQuickStartOpen, setIsQuickStartOpen] = useState(false); const useV1 = searchParams.has("v1_query"); const { data, loading, error, errorStatus, call } = fetcherApiCallback< @@ -63,10 +73,7 @@ export default function Home() { + setIsQuickStartOpen(false)} + maxWidth="md" + fullWidth + > + Submit Your First Kernel + + + + + + + + {leaderboards.length > 0 ? ( {leaderboards.map((leaderboard) => ( From 0b6482847257298398b403184d47f0358e72079b Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 17 Feb 2026 21:00:15 +0100 Subject: [PATCH 4/5] add a markdown quick start --- frontend/src/pages/home/quick-start.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 frontend/src/pages/home/quick-start.md diff --git a/frontend/src/pages/home/quick-start.md b/frontend/src/pages/home/quick-start.md new file mode 100644 index 0000000..7f90a25 --- /dev/null +++ b/frontend/src/pages/home/quick-start.md @@ -0,0 +1,25 @@ +## 1) Install `popcorn-cli` + +```bash +curl -fsSL https://raw.githubusercontent.com/gpu-mode/popcorn-cli/main/install.sh | bash +``` + +## 2) Register your account + +```bash +popcorn-cli register discord +``` + +## 3) Download a starter kernel + +```bash +wget https://raw.githubusercontent.com/gpu-mode/reference-kernels/refs/heads/main/problems/pmpp/grayscale_py/submission.py +``` + +## 4) Submit to leaderboard + +```bash +popcorn-cli submit --gpu A100 --leaderboard grayscale --mode leaderboard submission.py +``` + +For a full overview of the commands, check out the [popcorn-cli repo](https://github.com/gpu-mode/popcorn-cli). \ No newline at end of file From 7399a77472431d52c84138268e0969fa077e8a08 Mon Sep 17 00:00:00 2001 From: Mark Saroufim Date: Tue, 17 Feb 2026 14:52:36 -0800 Subject: [PATCH 5/5] Update quick-start.md --- frontend/src/pages/home/quick-start.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/home/quick-start.md b/frontend/src/pages/home/quick-start.md index 7f90a25..a918061 100644 --- a/frontend/src/pages/home/quick-start.md +++ b/frontend/src/pages/home/quick-start.md @@ -13,13 +13,13 @@ popcorn-cli register discord ## 3) Download a starter kernel ```bash -wget https://raw.githubusercontent.com/gpu-mode/reference-kernels/refs/heads/main/problems/pmpp/grayscale_py/submission.py +wget https://raw.githubusercontent.com/gpu-mode/reference-kernels/refs/heads/main/problems/pmpp_v2/grayscale_py/submission.py ``` ## 4) Submit to leaderboard ```bash -popcorn-cli submit --gpu A100 --leaderboard grayscale --mode leaderboard submission.py +popcorn-cli submit --gpu A100 --leaderboard grayscale_v2 --mode leaderboard submission.py ``` -For a full overview of the commands, check out the [popcorn-cli repo](https://github.com/gpu-mode/popcorn-cli). \ No newline at end of file +For a full overview of the commands, check out the [popcorn-cli repo](https://github.com/gpu-mode/popcorn-cli).