2 poin oleh GN⁺ 2024-08-10 | 1 komentar | Bagikan ke WhatsApp
  • Berbeda dengan CPU, penyimpanan, jaringan, dan memori, GPU belum tervirtualisasi sebagai sumber daya yang melimpah, dan Thunder Compute berupaya memecahkannya di lapisan sistem
  • Fokus peningkatan pasokan bukan hanya membuat lebih banyak chip, tetapi juga pada pemanfaatan lewat software agar GPU yang sudah diterapkan dapat digunakan lebih baik
  • Sementara optimasi yang ada masih berada di lapisan workload, seperti batching inferensi atau antrean pekerjaan pelatihan, virtualisasi GPU menargetkan area sistem yang relatif kurang dibahas
  • NVIDIA H100 dapat digunakan mulai $1,38 per jam dari VS Code, CLI, dan browser, dengan klaim penghematan 80% dibanding AWS, tanpa kontrak, tanpa biaya egress, serta storage yang dapat diskalakan
  • Selama 4 tahun dalam mode stealth, mereka membuat prototipe riset, dan berupaya menerapkan peningkatan kapasitas GPU di data center melalui cloud milik sendiri dan mitra enterprise

Meningkatkan tingkat utilisasi rendah dengan virtualisasi GPU

  • Thunder Compute melihat bahwa berbagai sumber daya komputasi yang langka pada akhirnya menjadi melimpah, tetapi GPU belum mengalami transisi yang sama
  • Cara membuat GPU menjadi melimpah tidak hanya bergantung pada produksi chip yang lebih banyak, tetapi juga pada software yang membuat chip yang sudah diterapkan dapat digunakan lebih baik
  • Saat ini GPU sering kali tidak dimanfaatkan secara memadai, dan solusi yang ada terutama berfokus pada lapisan workload
    • Melakukan batch processing untuk permintaan inferensi
    • Mengantrekan pekerjaan pelatihan di beberapa fleet server
  • Virtualisasi sudah umum untuk CPU, storage, networking, dan memori, tetapi tingkat virtualisasi yang sama belum mapan untuk GPU
  • Menangani ruang kosong ini di lapisan sistem adalah pendekatan inti Thunder Compute

Pendekatan produk dan rencana penerapan

  • Thunder Compute adalah lab sistem dengan fokus komersial, yang berupaya menerapkan riset virtualisasi GPU terbaru ke lingkungan produksi
  • Mereka memperkenalkan timnya sebagai gabungan pakar infrastruktur dan peneliti sistem dari Citadel Securities, Aquatic, dan AWS
  • Selama 4 tahun dalam mode stealth, mereka membuat prototipe riset, dan kini menerapkan hasilnya melalui cloud milik sendiri dan mitra enterprise
  • Dalam deskripsi produk, NVIDIA H100 tersedia mulai $1,38 per jam
    • Dapat diakses dari VS Code, CLI, dan browser
    • Mengklaim penghematan 80% dibanding AWS
    • Menawarkan tanpa kontrak, tanpa biaya egress, dan storage yang dapat diskalakan
  • Tujuannya adalah meningkatkan kapasitas GPU data center secara bertahap

1 komentar

 
GN⁺ 2024-08-10
Komentar Hacker News
  • Cukup menarik. Dulu saya pernah butuh GPU-over-IP hanya untuk transcoding video
    Server homelab saya punya GPU AMD yang performanya lemah, dan setiap kali mencoba encoding video, kernel-nya sering crash, sementara PC gaming saya punya NVIDIA RTX 3080. Jadi saya membuat https://github.com/steelbrain/ffmpeg-over-ip dan menjalankan server di mesin Windows serta klien di media server saya (Plex, Emby, Jellyfin, dll.), dan hasilnya bekerja dengan sempurna

    • Kalau belum pernah diposting ke Show HN, sepertinya layak dipertimbangkan
      https://gist.github.com/tzmartin/88abb7ef63e41e27c2ec9a5ce5d...
      https://news.ycombinator.com/showhn.html
      https://news.ycombinator.com/item?id=22336638
    • Saat melihat judulnya, saya mengira yang dimaksud kurang lebih seperti ini. Agak mengecewakan karena kiriman aslinya ternyata layanan cloud berbayar, bukan alat serbaguna yang benar-benar berguna, dan lagi-lagi isi sebenarnya ada di komentar
      Saya juga penasaran apakah ada penggunaan GPU-over-network selain encoding video. Kalau latensinya bertambah, bukankah itu akan menyulitkan untuk machine learning atau pekerjaan yang berat di grafis?
    • Menarik. Saya penasaran apakah ini juga mendukung konversi multi-file seperti HLS, yang menghasilkan banyak file time-slice
  • Kalau ini bekerja di batas CPU/GPU, saya bingung apakah tidak akan terjadi bottleneck I/O yang sangat besar untuk dataset yang tidak muat di VRAM
    Mungkin saya salah memahami cara kerjanya, tetapi kalau I/O GPU disadap, kedengarannya seperti harus men-stream seluruh dataset ke mesin jarak jauh di setiap epoch, yang terasa boros

    • Pemahaman tentang sistemnya benar. Agar praktis, kami sudah menerapkan berbagai optimasi untuk menurunkan biaya I/O
      Performa inferensi BERT bisa dilihat di sini: https://youtu.be/qsOBFQZtsFM?t=69
      Untuk training, overhead-nya lebih besar daripada inferensi, dan kami sedang menerapkan optimasi tambahan agar performanya mendekati native
  • Bagi yang penasaran bagaimana ini benar-benar bekerja, tampaknya strukturnya adalah menyuntikkan library ke dalam proses, lalu meng-hook fungsi-fungsi ini[1] dan meneruskannya ke layanan
    [1] https://pastebin.com/raw/kCYmXr5A

    • Saya penasaran bagaimana Anda mengetahui bahwa fungsi-fungsi ini di-hook. Dugaan saya ada flag ld/ldd yang memberi tahu simbol mana yang di-bind ulang
      Saya juga mengira agar simbol bisa di-bind ulang, simbol itu harus lemah, dan rasanya NVIDIA tidak mungkin mengekspos simbol lemah, jadi apakah ini pada dasarnya berarti pendekatan LD_PRELOAD?
    • Saya sempat berharap ada semacam cara ajaib untuk meneruskan seluruh perangkat PCIe
  • Menarik, tapi yang lebih saya minati adalah self-hosting. Saya sudah punya banyak GPU, sebagian dipakai dan sebagian menganggur
    Saya penasaran apakah ada opsi self-hosting supaya GPU yang sudah saya miliki bisa digunakan

    • Self-hosting belum didukung saat ini, tetapi sepertinya teknologi yang sama akan sangat cocok
      Keunggulan seperti penjadwalan pekerjaan yang efisien, berbagi GPU, dan kemudahan penggunaan akan tetap berlaku di lingkungan self-hosting. Kami sangat terbuka terhadap kemungkinan ini ke depan
    • Jika Anda ingin memakai GPU sendiri, baik perangkat tetap maupun di cloud, dan ingin pengalaman yang mirip PyTorch seperti di atas, lihat https://github.com/run-house/runhouse
    • Jika Anda ingin memakai GPU sendiri atau akun cloud sendiri sambil tetap mendapatkan pengalaman pengembangan yang baik, lihat SkyPilot
    • Dengan layanan seperti Akash Network, Anda bisa menyewakan GPU sendiri di cloud, dan Anda juga bisa menyewa GPU di thundercompute.com. Jalurnya lebih dekat ke pola admin yang dijalankan hampir seperti self-hosting
  • Saya kurang paham. Anda bisa langsung menjalankan instans GPU yang diinginkan di ECS, jadi saya tidak mengerti kenapa harus menjalankan instans di ECS lalu memakai GPU kalian dari ECS
    Terpisah dari itu, saya juga tidak melihat alasan untuk menginginkan Nitro setengah jadi alih-alih Nitro sungguhan

    • Poin yang bagus. Ada beberapa keuntungan
      Jika Anda terus melakukan pengembangan yang membutuhkan GPU, biasanya Anda harus membayar selama seluruh waktu instans itu menyala. Dengan Thunder, Anda hanya membayar saat benar-benar memakai GPU. Saat hanya menjalankan kode CPU, biaya waktu GPU tidak muncul. Alternatifnya adalah menyalakan dan mematikan instans secara manual, tetapi itu bisa merepotkan
      Selain itu, jenis dan jumlah GPU yang digunakan bisa diskalakan dengan mudah. Misalnya, Anda mengembangkan di instans T4 yang murah lalu ingin menjalankan pekerjaan training deep learning penuh di 8 A100, Anda tidak perlu mengganti instans dan menyiapkan ulang environment; cukup jalankan satu perintah lalu langsung berjalan di GPU yang lebih kuat
    • Dari sudut pandang sistem, ini terlihat lebih transparan. Misalnya, jika Anda memakai aplikasi GUI yang membutuhkan akselerasi GPU (Matlab, SolidWorks, Blender) di thin client, ini bisa dilakukan tanpa menyiapkan ECS
      Anda bisa mengembangkan tanpa GPU lalu tiba-tiba memasang GPU saat menjalankan simulasi, dan kemungkinan jauh lebih murah daripada AWS. Pada dasarnya, ini tampak seperti menyelesaikan masalah yang dipecahkan Ray(https://www.ray.io/) dengan cara yang lebih umum. Kemungkinan berbagi GPU yang lebih granular, seperti setengah GPU, juga mungkin dilakukan, jadi sangat menarik
  • Karena saya sangat tertarik dengan ini, saya memutuskan untuk membuka instans T4 secara gratis. Silakan coba sendiri dan beri tahu pendapat Anda

    • Saya penasaran berapa harga A100 dan H100
  • Keren. Saya penasaran apakah ini juga bisa dibuat berjalan dengan MIG atau vGPU

    • Kami belum mengujinya dengan MIG atau vGPU, tetapi karena pada dasarnya itu adalah cara mempartisi GPU secara fisik, sepertinya seharusnya bisa berjalan
      Salah satu tujuan utama dalam waktu dekat adalah memungkinkan berbagi GPU. Karena kami akan memungkinkan pengguna memakai seluruh memori GPU tanpa membatasi mereka hanya pada sebagian memori, ini bisa jadi lebih baik daripada MIG atau vGPU
  • Saya penasaran seperti apa rasanya dalam pemakaian nyata dengan throughput yang bermakna. Apakah ini juga bisa dipakai untuk cracking hash?
    Setiap kali memikirkan GPU virtual lewat jaringan, yang terlintas di kepala saya adalah botnet. Terutama bagian dari https://www.hpcwire.com/2012/12/06/gpu_monster_shreds_passwo... yang berbunyi, “Gosney pertama-tama harus meyakinkan Profesor Amnon Barak, salah satu pendiri Mosix, bahwa ia ‘tidak sedang mencoba mengubah dunia menjadi botnet raksasa’”

    • Ini memang eksperimen pikiran yang menarik, tetapi dalam praktiknya sistem kami tidak memiliki GPU yang tersebar, jadi lebih dekat ke AWS daripada botnet
      Teknologi ini punya aplikasi menarik untuk membangun klaster yang sangat fleksibel di dalam pusat data, dan kami sedang mengeksplorasi bagian itu
  • Para insinyur SGI asli yang mengembangkan glx sangat berhati-hati merancang agar mekanisme X11 bisa dipakai untuk mentransfer GPU, sehingga mengirim stream GL lewat jaringan lalu merendernya di kartu grafis saya sendiri dulu cukup mudah
    Kurang lebih seperti “jalankan di superkomputer di ujung lorong, render di workstation.” Pengembangan driver belakangan ini tampaknya tidak lagi menunjukkan perhatian seperti itu, jadi biasanya hal tersebut tidak bisa dilakukan lagi. Saya tidak tahu seberapa bergunanya itu dalam praktik. Biasanya kalau Anda punya kartu grafis yang bagus, CPU-nya juga bagus. Meski begitu, ini menyenangkan untuk diutak-atik, dan ada daya tarik tersendiri saat program yang berjalan di ruang mesin mendapatkan grafis yang dipercepat. Saya pernah berhasil menjalankan glquake dengan cara seperti ini

  • Fakta bahwa ini bisa dilakukan sendiri sudah mengesankan, tetapi saya penasaran apa yang terjadi jika koneksi jaringan terputus atau tidak 100% stabil
    Dari pengalaman saya, driver tidak bereaksi dengan baik bahkan ketika GPU lokal bertingkah sedikit aneh