Skip to content

Conversation

@msaroufim
Copy link
Member

@msaroufim msaroufim commented Apr 8, 2025

This works right now, I managed to push a job and get results back in the terminal https://github.com/gpu-mode/discord-cluster-manager/actions/runs/14344920618

To install ./build.sh

Some pending issues

  • No spinner :(
  • This completely borks the terminal output after running it once so looks quite ugly Doesn't anymore 💪
  • Release workflow
  • Misc bugs

Logs

➜  rust git:(rust) ✗ ./build.sh
Building Popcorn CLI (Rust version)...
   Compiling popcorn-cli v0.1.0 (/Users/marksaroufim/Dev/popcorn-cli/rust)
    Finished `release` profile [optimized] target(s) in 1.92s

 _   __                      _  ______          _   
| | / /                     | | | ___ \        | |  
| |/ /  ___ _ __ _ __   ___ | | | |_/ /  ___  _| |_ 
|    \ / _ \ '__| '_ \ / _ \| | | ___ \ / _ \| | __|
| |\  \  __/ |  | | | |  __/| | | |_/ /| (_) | | |_ 
\_| \_/\___|_|  |_| |_|\___|_/ \____/ \___/|_|\__|
                                                  
    POPCORN CLI - GPU MODE
    
 ┌───────────────────────────────────────┐
 │  ┌─────┐ ┌─────┐ ┌─────┐              │
 │  │ooOoo│ │ooOoo│ │ooOoo│              │▒
 │  │oOOOo│ │oOOOo│ │oOOOo│              │▒
 │  │ooOoo│ │ooOoo│ │ooOoo│   ┌────────┐ │▒
 │  └─────┘ └─────┘ └─────┘   │████████│ │▒
 │                            │████████│ │▒
 │ ┌────────────────────────┐ │████████│ │▒
 │ │                        │ │████████│ │▒
 │ │  POPCORN GPU COMPUTE   │ └────────┘ │▒
 │ │                        │            │▒
 │ └────────────────────────┘            │▒
 │                                       │▒
 └───────────────────────────────────────┘▒
  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


Result:

{
  "error": "",
  "runs": {
    "benchmark": {
      "compilation": null,
      "end": "2025-04-08T22:52:12.943097",
      "run": {
        "command": "python eval.py benchmark /tmp/tmpgeioiek2",
        "duration": 3.189492963254452,
        "exit_code": 0,
        "passed": true,
        "result": {
          "benchmark-count": "6",
          "benchmark.0.best": "55736.0",
          "benchmark.0.err": "824.3758828117283",
          "benchmark.0.mean": "58264.6",
          "benchmark.0.runs": "100",
          "benchmark.0.spec": "seed: 54352; size: 512",
          "benchmark.0.std": "8243.758828117283",
          "benchmark.0.worst": "138440.0",
          "benchmark.1.best": "72688.0",
          "benchmark.1.err": "1188.4021959205083",
          "benchmark.1.mean": "80428.18",
          "benchmark.1.runs": "100",
          "benchmark.1.spec": "seed: 93246; size: 1024",
          "benchmark.1.std": "11884.021959205083",
          "benchmark.1.worst": "106981.0",
          "benchmark.2.best": "143234.0",
          "benchmark.2.err": "1596.7111237416532",
          "benchmark.2.mean": "159916.4606741573",
          "benchmark.2.runs": "89",
          "benchmark.2.spec": "seed: 6256; size: 2048",
          "benchmark.2.std": "15063.342614723651",
          "benchmark.2.worst": "183009.0",
          "benchmark.3.best": "503615.0",
          "benchmark.3.err": "5266.209020821373",
          "benchmark.3.mean": "534788.6666666666",
          "benchmark.3.runs": "18",
          "benchmark.3.spec": "seed: 8841; size: 4096",
          "benchmark.3.std": "22342.632658611365",
          "benchmark.3.worst": "565162.0",
          "benchmark.4.best": "1915521.0",
          "benchmark.4.err": "19694.582469144367",
          "benchmark.4.mean": "2044588.25",
          "benchmark.4.runs": "8",
          "benchmark.4.spec": "seed: 6252; size: 8192",
          "benchmark.4.std": "55704.69126627872",
          "benchmark.4.worst": "2078088.0",
          "benchmark.5.best": "7962686.0",
          "benchmark.5.err": "81738.78700928953",
          "benchmark.5.mean": "8207732.5",
          "benchmark.5.runs": "4",
          "benchmark.5.spec": "seed: 54352; size: 16384",
          "benchmark.5.std": "163477.57401857906",
          "benchmark.5.worst": "8296916.0",
          "check": "pass"
        },
        "stderr": "",
        "stdout": "",
        "success": true
      },
      "start": "2025-04-08T22:52:07.175182"
    }
  },
  "success": true,
  "system": {
    "cpu": "Intel(R) Xeon(R) Platinum 8480+",
    "gpu": "AMD Instinct MI300X",
    "platform": "Linux-5.15.0-91-generic-x86_64-with-glibc2.35",
    "torch": "2.6.0+rocm6.2.4"
  }
}

➜  popcorn-cli git:(rust) ✗ 

@msaroufim msaroufim requested a review from Copilot April 8, 2025 22:49
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.

Files not reviewed (2)
  • rust/.gitignore: Language not supported
  • rust/build.sh: Language not supported
Comments suppressed due to low confidence (1)

rust/src/models/mod.rs:27

  • [nitpick] The field name 'title_text' in GpuItem might be less clear given its usage; consider renaming it to 'name' for better clarity and consistency.
pub struct GpuItem {

Comment on lines +29 to +31
if arg == "gpu" || arg == "gpus" {
gpus = parts[2..].iter().map(|s| s.to_string()).collect();
} else if arg == "leaderboard" && parts.len() > 2 {
Copy link

Copilot AI Apr 8, 2025

Choose a reason for hiding this comment

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

The GPU directive branch uses parts[2..] without ensuring that the directive includes GPU identifiers. Consider adding a check to ensure parts.len() >= 3 before accessing parts[2..].

Suggested change
if arg == "gpu" || arg == "gpus" {
gpus = parts[2..].iter().map(|s| s.to_string()).collect();
} else if arg == "leaderboard" && parts.len() > 2 {
if (arg == "gpu" || arg == "gpus") && parts.len() >= 3 {
gpus = parts[2..].iter().map(|s| s.to_string()).collect();
} else if arg == "leaderboard" && parts.len() >= 3 {

Copilot uses AI. Check for mistakes.
@S1ro1 S1ro1 merged commit 2df243d into main Apr 14, 2025
1 check failed
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.

3 participants