タグ

gpuに関するsh19910711のブックマーク (53)

  • コモディティ品で GPU 計算ノードを構築したときの障害の記録メモ(2.5 年目) - Qiita

    背景 2019 年コモディティ品で GPU 計算ノードを構築するメモ https://qiita.com/syoyo/items/cffcd64aa09cdb042b5d あたりで GPU 計算ノード(機械学習, レイトレ, マイニング)を構築している 2019 年からだいたい 2.5 年くらい連続稼働させていて(~10 nodes くらい), インシデントも多少たまってきたので記録です. GPU の障害 1~2 週間連続稼働させているとエラーも出やすくなります. Linux(Ubuntu) + GPU エラーメッセージ集 https://qiita.com/syoyo/items/0707daed0295db6a3ffa GPU fallen of the bus がよく出ます: 熱暴走なり, メモリエラーが原因が多い模様. 基リブートすれば治る. 機械学習などで長期間回すときは GP

    コモディティ品で GPU 計算ノードを構築したときの障害の記録メモ(2.5 年目) - Qiita
    sh19910711
    sh19910711 2024/05/11
    "1~2 週間連続稼働させているとエラーも出やすく / エラーが出ると software reboot(/sbin/reboot)できないことが多い + なにかしら物理リセットできる仕組みがあるとよい / SSD も HDD: 10 個かって 1 個が 2 年で壊れる感じ" 2021
  • huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita

    はじめに 学習スクリプトを実行しているときにGPUにメモリが乗り切らなくてCUDA out of memoryで処理が落ちてしまい、学習スクリプトを最初から実行し直すハメになることがよくあります。 特に自然言語処理とかだと、batch毎に最大系列長に合わせて短い系列をpaddingするような処理をしている場合、毎ステップで必要なGPUメモリが変化するため、バッチサイズを大きく設定していると1エポック終わるまで不安で仕方ありません。 さらにTransformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダーなので、ちょっと長い系列長のデータがあったら想定以上にメモリを消費して溢れてしまうケースとかもよくあるんじゃないでしょうか。 huggingfaceのaccelerateというライブラリ内のfind_executable_batch_sizeという機能

    huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita
    sh19910711
    sh19910711 2024/05/10
    "Transformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダー / accelerate: TPU、GPU、CPUでの実行を同じコードで記述できる / accelerate launch {スクリプト名}.pyのように実行" 2023
  • 1つの大きなLLM(大規模言語モデル)を複数のGPUで力を合わせて動かそう | IIJ Engineers Blog

    地方拠点の一つ、九州支社に所属しています。サーバ・ストレージを中心としたSI業務に携わってましたが、現在は技術探索・深堀業務を中心に対応しています。 2018年に難病を患ったことにより、定期的に入退院を繰り返しつつ、2023年には男性更年期障害の発症をきっかけに、トランスジェンダーとしての道を歩み始めてます。 LLM群雄割拠の時代 昨今、ローカルGPUで駆動できるようなLLM(大規模言語モデル)もかなり増えてきて、キャッチコピー的に「ついに我が家にもGPT-4が!」とか言われるようになってまいりました。パラメータ規模で言えば70億~130億(7B-13B)パラメータ、700億(70B)パラメータ、1400億(140B)パラメータあたりのモデルが活発にリリースされているように見受けられます。 大きなモデルをGPU寄せ集めしつつ遊びたい! しかしながら、コンシュマー向けのGPUにおいては、7B

    1つの大きなLLM(大規模言語モデル)を複数のGPUで力を合わせて動かそう | IIJ Engineers Blog
    sh19910711
    sh19910711 2024/05/08
    "ディスパッチ: 単一GPUでは処理し切れないものを複数のGPUあるいはCPU、ストレージも含めて余裕あるリソースに対して処理を派遣 / 異なるGPUの組み合わせでも動かすことが出来ます"
  • RISC-VなGPGPUであるVORTEXは、CUDAでプログラミングできるって! - Vengineerの妄想(準備期間)

    はじめに Vortex という GPGPU をこのブログで紹介したのが、2020年4月24日 vengineer.hatenablog.com その後、情報がアップデートされているようなもの、記録として残しておきます。 VORTEX サイトは、ここ 論文もアップデート : A Scalable Multicore RISC-V GPGPU Accelerator for High-End FPGAs (DAC 2021) Bringing OpenCL to Commodity RISC-V CPUs Fifth Workshop on Computer Architecture Research with RISC-V (2021) Supporting CUDA for an extended RISC-V GPU architecture (プレゼン資料) Fifth Worksho

    RISC-VなGPGPUであるVORTEXは、CUDAでプログラミングできるって! - Vengineerの妄想(準備期間)
    sh19910711
    sh19910711 2024/05/07
    "CUDAから VORTEX が使えるようになっているっぽい / NVPTX-SPIR-V Translator を使って、NVPTX を SPIR-V に変更して、SPIR-V -OpenCL Translator でOpenCLに変更してから、POCL に" 2021
  • GPUの祭典・GTC2016に参加しました - Preferred Networks Research & Development

    比戸です。4月4日から開かれていた世界最大のGPUイベント、NVIDIAのGPU Technology Conference (GTC) 2016に参加しました。 GTCは今年もシリコンバレーの南端サンノゼで開催され、昨年に比べて約50%参加者が増えたそうです。日からの参加者もかなりいて、特にゲームやHPCではない業界関係者が多かった、という噂を聞きました。 今年も初日の基調講演にはNVIDIA CEOのJen-Hsun Huangが登壇したのですが、強調していたのは今後フォーカスする領域が、VR、自動車、そしてディープラーニングの3つであることでした。 昨年もGPUを用いた人工知能技術の話が中心で、TeslaのElon Muskとの対談などがありましたが、今年は方向性をより鮮明にしたことになります。グラフィックスやHPCなど既存ビジネスとのバランスを取りながら、新しい事業領域への投資

    GPUの祭典・GTC2016に参加しました - Preferred Networks Research & Development
    sh19910711
    sh19910711 2024/05/03
    "GTC: NVIDIAのGPU Technology Conference / 日本からの参加者もかなりいて、特にゲームやHPCではない業界関係者が多かった / 昨年の同イベント時には、まだChainerもTensorFlowもCNTKもありませんでした" 2016
  • Python: LightGBM v4.0 の CUDA 実装を試す - CUBE SUGAR CONTAINER

    LightGBM のバージョン 4.0.0 が 2023-07-14 にリリースされた。 このリリースは久しぶりのメジャーアップデートで、様々な改良が含まれている。 詳細については、以下のリリースノートで確認できる。 github.com リリースの大きな目玉として CUDA を使った学習の実装が全面的に書き直されたことが挙げられる。 以前の LightGBM は、GPU を学習に使う場合でも、その計算リソースを利用できる範囲が限られていた。 それが、今回の全面的な刷新によって、利用の範囲が拡大されたとのこと。 ただし、PyPI で配布されている Linux 向け Wheel ファイルは CUDA での学習に対応していない。 対応しているのは CPU と、GPU でも OpenCL の API を使ったもの。 そのため、もし CUDA を使った学習を利用したい場合には自分で Wheel を

    Python: LightGBM v4.0 の CUDA 実装を試す - CUBE SUGAR CONTAINER
    sh19910711
    sh19910711 2024/04/30
    "CUDA を使った学習を利用したい場合には自分で Wheel をビルドする必要 / pip: --no-binary で PyPI の Wheel をインストールせず、ソースコード配布物を自身でビルド + キャッシュが効いてしまわないように --no-cache も指定" 2023
  • Flash AttentionとDeep Speedを使ってLLMをGPU1枚でフルファインチューニングする - Qiita

    TL;DR Deep Speedのoffload_optimizer機能を使って、VRAM40GBのGPU1枚で3.6BパラメータのLLMをファインチューニングしました。 さらに、Flash Attentionを使うことで、学習を高速化しつつ使用メモリ量も減らし、より長い系列長で学習を行うことができました。 はじめに Flash AttentionはAttentionの計算で使用するGPUメモリ量を系列長の2乗のオーダーから1乗に削減する技術で、xformersやoptimum、さらにはtransformersライブラリでも簡単に使用できるようになってきています。 前回の記事(1, 2)では、LLMの推論においてFlash Attentionを使ってみたのですが、推論ではあまり効果が見られないという結論を得ました。 今回はFlash Attentionが領を発揮するであろう学習(ファイン

    Flash AttentionとDeep Speedを使ってLLMをGPU1枚でフルファインチューニングする - Qiita
    sh19910711
    sh19910711 2024/04/28
    "Flash Attention: 推論ではあまり効果が見られない / GPU1枚で学習を行うためにDeep SpeedのZeRO-2を使用 / 系列長を長くして1ステップ当たりに含まれるトークン数を増やすと、学習が効率化されて高速化される傾向" 2023
  • TH3P4G3(85W版)とTeslaP40をUbuntu22.04でセットアップした【外付けGPU】

    sh19910711
    sh19910711 2024/04/27
    "ローカルLLM: 量子化したモデルでも賢いのを使おうとすると平気で何十ギガも食ってくる / Tesla P40: VRAM24GB + ebayやアリエクでは 2〜3マソで買える(中古) / 多分、データセンターの世代交代による引退品が大量に流れ"
  • 【ローカルLLM】大規模言語モデルAIのあまりの遅さについカッとなってノートPCにGPUを追加する

    ChatGPT」が世界を席巻するなか、大規模言語モデル(LLM)について相談を受けるようになりました。企業のAI利用ニーズとしてよくある「独自データにより追加学習させたい」という話しをしていると、手元でも試してみたい衝動にかられ、「ファインチューニング」と呼ばれる追加で学習する手法を手元で動かしてみました。 今回、Pythonなどのプログラムを1行たりとも書いていませんので(笑)、「大規模言語モデル(LLM)に興味はあるけどプログラミングはよくわからない」「ごく普通のパソコンしか持ってない」という人の参考になるかと思い、作業メモを書き残します。 いろいろと迷走しますが、最終的に追加投入した費用は「10万円」です。 LLMやファインチューニングなどを試したいが、コードは書きたくない諸兄へ LLMというと多くの解説記事は「Google Colab」などのクラウドサービスを利用して、Pytho

    【ローカルLLM】大規模言語モデルAIのあまりの遅さについカッとなってノートPCにGPUを追加する
    sh19910711
    sh19910711 2024/04/27
    "ノートパソコンにeGPU Box・外付けGPUをThunderbolt接続 + そこそこの速さでローカルLLMやLoRA ファインチューニングを試す / 追加投入した費用は10万円 / Intel UHD Graphics620: 3BだとLoadに失敗するケース多数" 2023
  • MLX で Llama2 を動かしてみる

    Appleシリコン上での実行に対応した機械学習ライブラリMLXが公開されました。 今回は公式が公開している"mlx-examples"リポジトリの"llama"を使って、llama2-7b-chatの実行を試してみます。 commit: 3cf436b529ea58d6c0c0a29c0dd799908cd4497d 2023/12/22 検証環境 MacBook Pro Apple M3 Pro メモリ 36GB 公式要件としては、以下の環境が示されています。以下要件を満たしていてもメモリが少ない場合、実行するモデルによっては推論ができない可能性があります。 Using an M series chip (Apple silicon) Using a native Python >= 3.8 macOS >= 13.3 環境構築 まず"mlx-examples"のリポジトリをローカルにク

    MLX で Llama2 を動かしてみる
    sh19910711
    sh19910711 2024/04/27
    "mlx-example: 頻繁に更新が行われており整備が進んでいる / M3 Pro: Prompt processingに0.665秒、Full generationに11.515秒 / iPhone,iPadを始め、2024年発売予定のVision Pro上での活用も視野に入れながらMLXの動向をウォッチしていきたい" 2023
  • Apple Silicon GPU(mps) の embeddings 変換パフォーマンス - A Day in the Life

    RTX 4090 が圧勝(そりゃそうだろう)、というのは置いておいても、T4 の60%の速度が M2 GPU 10 コアで出ている。M3 Max はGPU 40コアモデルもあって、速度が線型増加すると仮定すると、M3 Max GPU 40コアならRPSは130ぐらい。RTX4090 の 1/3ぐらいの速度になって、ラップトップPCGPUとしてはかなり速い。T4の倍以上の速度は出そう。 M2 の Embeddings の変換は実用的な速度か?と言われると用途によりそう。すごく遅くはないが、早くもない。ただ、M2 CPU で変換するよりは GPU は3倍は速いし、HuggingFace Transformers なら device を "mps" にするだけで使えるので、Mac で使う場合は当たり前に GPU を使っていきたい。M3 Max なら大体の用途で、そこそこ実用的な速度が出るんじゃ

    Apple Silicon GPU(mps) の embeddings 変換パフォーマンス - A Day in the Life
    sh19910711
    sh19910711 2024/04/25
    "T4 の60%の速度が M2 GPU 10 コアで出ている / 実用的な速度か?と言われると用途によりそう + 遅くはないが、早くもない / Apple Silicon GPU: HuggingFace Transformers なら device を ”mps” にするだけで使える" 2023
  • LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ

    背景 日語性能のよい軽量 LLM, LiLM, Lightweight Language Model ほしい... スマホで動かしたり, ブラウザで動かしたり... ドメインは知識応答系. Code 生成とか数学とかのドメインは今は考えない. Chinese LLaMa https://zenn.dev/syoyo/scraps/6c3e92402e6fd0 でいい感じに incremental pretrain(追加事前学習) するといけるっぽいことがわかった! ん-, でも 7B or 14 B 規模で試して当にうまくいくのかわからん... (後日 たぶん似たような方法で rinna ちゃんが Youri 7B, ELYZA ちゃんが Japanese LLaMa 7B 出してきた! それなりにいい感じになったようだよ) あと 7B だとやっぱりまだちょっと大きい. 量子化してギリ

    LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ
    sh19910711
    sh19910711 2024/04/20
    "追加事前学習: CPU mem は 160 GB くらい + 192 GB or 256 GB あると安心 + 学習は 225 W に powerlimit した 3090 x 2 でおよそ 100 日 / WASM でブラウザ動作デモできるようにやっぱりどこかの時点で公開するかも" 2023
  • DirectMLで試す、非NVIDIA系GPUで機械学習 - Qiita

    はじめに 株式会社ピーアールオー(あったらいいな!を作ります) Advent Calendar 2022の3日目になります。 前日は 私の「Wingetで簡単!開発PCセットアップ(Windows)」でした。 MLをやってみたいけど MLを気軽に試してみたいけど、最大の障壁となるのはやはり高価なGPUが必要という点かと思います。PCゲームをやる方ならまだしも、そうでない人間には数万~数十万もするdGPU/eGPUを用意することは簡単ではありません。特にこの分野ではcudaコアを有するNVIDIAのGPUが一強という感じですが、まともに使えそうなボードをそろえようとするとやはり十万程度の出費が必要になります(この辺は諸説あるでしょうが・・・)。 もちろん、CPUのみで挑むというやり方もありますが、あまりに時間がかかるのはやはり敬遠しがちになります。また、クラウドGPUみたいなものもあるので、

    DirectMLで試す、非NVIDIA系GPUで機械学習 - Qiita
    sh19910711
    sh19910711 2024/04/14
    "CPU統合型GPU(iGPU)の性能も向上してきている / DirectML: Microsft謹製 + cudaの代わりにDirectX12を使うことで、非NvidiaのGPUでもMLを可能に / PlaidML: AMD Radeon系のGPUをターゲットにしたライブラリ" 2022
  • WebGLからWebGPUにステップアップしよう! - Qiita

    はじめに この記事はHIKKYアドベントカレンダー2023の10日目の記事です。 こんにちは、 @emadurandal と申します。HIKKYのエンジン開発部でメタバースエンジンの開発に従事しています。 今回は、WebGLからWebGPUへのステップアップについての記事を書いてみようと思います。 なぜWebGPUが登場したのか WebGLはOpenGL ESのAPI体系をブラウザに移植したものです。 そのOpenGLですが、歴史的経緯により、GPUCPUの性能を完全に引き出しきれないレガシーな部分を引きずっていました。 詳しくはこちらの記事をご覧ください。 そのため、WebGL2の次はWebGL3というわけにはいかなかったようです。 よりGPUの性能を引き出せる、よりモダンなAPI体系が必要でした。ネイティブにはVulkan APIがありますが、それをそのままブラウザに持ってくるには、

    WebGLからWebGPUにステップアップしよう! - Qiita
    sh19910711
    sh19910711 2024/04/13
    "WebGPU: Metal、DirectX12、Vulkanそれぞれの特徴をうまくまとめ、その共通項となるAPI / Compute Shaderがサポートされ、GPUを汎用計算に使える / TensorFlow.jsなどがWebGPUのCompute Shaderを活用するように対応を始めている" 2023
  • Python: PyTorch で Apple Silicon GPU を使ってみる - CUBE SUGAR CONTAINER

    PyTorch v1.12 以降では、macOS において Apple Silicon あるいは AMDGPU を使ったアクセラレーションが可能になっているらしい。 バックエンドの名称は Metal Performance Shaders (MPS) という。 意外と簡単に使えるようなので、今回は手元の Mac で試してみた。 使った環境は次のとおり。 GPU が 19 コアの Apple M2 Pro を積んだ Mac mini を使用している。 $ sw_vers ProductName: macOS ProductVersion: 14.4.1 BuildVersion: 23E224 $ sysctl machdep.cpu.brand_string machdep.cpu.brand_string: Apple M2 Pro $ pip list | grep -i tor

    Python: PyTorch で Apple Silicon GPU を使ってみる - CUBE SUGAR CONTAINER
    sh19910711
    sh19910711 2024/03/30
    "PyTorch v1.12 以降では、macOS において Apple Silicon あるいは AMD の GPU を使ったアクセラレーションが可能 / Apple Silicon の GPU は、そこまで速くないにしてもワットパフォーマンスには優れている + CPU に比べればずっと速い"
  • 自作PCにGPUを2枚挿して13BのLLMを動かす話 | cloud.config Tech Blog

    この記事は FIXER Advent Calendar 2023 - Adventar 23日目の記事です。 はじめにこんにちは、毛利です。この記事では趣味用の自作PCGPUを2枚挿してサイズが13BのLLMを動かす話をします。 LLMのパラメータ数と推論に必要なメモリ量についてまず初めに、LLMのパラメータ数に対して、推論に使う場合にどれぐらいのメモリが必要なのかを話します。ここで言うパラメータ数は7B(70億)、13B(130億)、70B(700億)といったものです。 精度によっても変わってくるのですが、配布されるモデルの精度としてはbfloat16であることが多いです。この場合は、1パラメータあたり2byteになるので、~Bの部分を2倍したGBが要求されると考えればよいです。例えば、7BのLLMであれば14GB、13BのLLMであれば26GBなどとなります。逆に4bit量子化等が行

    自作PCにGPUを2枚挿して13BのLLMを動かす話 | cloud.config Tech Blog
    sh19910711
    sh19910711 2024/03/16
    "RTX A4000: Quadroシリーズの後継 + 1スロットサイズで補助電源も6pin一つなので、複数枚挿すのにちょうど良く / transformers: device_map="auto" にすれば複数GPUでもいい感じに使ってくれる" 2023
  • 70Bモデルのホスティング

    こんにちは、@ken11です。 今日はSpiral.AI株式会社のエンジニアブログとして、70BのLLMをホスティングした話をご紹介したいと思います。 70B 春先に「とりあえず6B、話はそれからだ」と言った人がいたような気もしますが、たしかに最近のLLMはパラメータ数が7B/13B/70Bというのが多いのではないでしょうか。 そうですね、Llama2をファインチューニングしたものも多いので、余計にそういったパラメータ数を見かけることが多くなった気がします。 さて、みんな大好きOpenAIGPT-3.5が175BだとかGPT-4はおそらく500B~だとかいろいろ言われており、Llama2最大サイズの70Bでも遠く及ばないわけですが、それでも70Bは市場に出回っている(誰でも使える)モデルの大きさとしては現状最大級となっているわけです。 とはいえ実際に使おうと思うと、7Bですら結構な推論コ

    70Bモデルのホスティング
    sh19910711
    sh19910711 2024/03/06
    "7Bですら結構な推論コストがかかり、70Bとなるといよいよ莫大になってきます / どんなにいいモデルでもホスティングして実際に使えなければ意味がない / cerebrium: サーバレスGPU + 推論に特化したサービス" 2023
  • 低価格スマホでコンピュートシェーダ - KAYAC engineers' blog

    この記事はTech KAYAC Advent Calendar 2019の2日目の記事です。 こんにちは。技術部平山です。 この記事では、「低価格帯の機械で状況を良くするためにコンピュートシェーダが使えないか?」 という考えを、簡単なサンプルで検証してみました。 結論 最初に結論を申し上げます。微妙。 まず数字を出しましょう。数字はあるテストでのフレームレート(fps, frames per second)です。 データサイズ CPU ComputeShader 1024 52 55 2048 15 17 4096 4 5 CPUからComputeShaderにすると、非常に負荷が大きい局面では25%くらい速くなるかな?というくらいです。 負荷が低い局面では差が小さくなってしまいます。 測定に用いた機械は、SharpのAndroid One S3、 チップはmsm8937(Snapdrag

    低価格スマホでコンピュートシェーダ - KAYAC engineers' blog
    sh19910711
    sh19910711 2024/02/04
    "CPUでもできることをGPUにやらせることは正義か / PLAYSTATION3のような「CPU側にすごい性能の謎コアがたくさんあって、 こいつも描画に参加させた方が速い」という変態マシンもありました" / 2019
  • ABCIの大規模言語モデル分散学習ハッカソンを振り返る

    7月6日〜14日の9日間、ABCIの主催で 第1回大規模言語モデル分散学習ハッカソン が開催されました。自分はいいだしっぺ 兼 チューターとして参加したのですが、今回のイベントは個人的な学びも多かったし、なにより楽しかったので、忘れないうちに振り返っておこうと思います。 いいだしっぺというのは、3月に上記の tweet をしたら NVIDIA の @sfuruyaz さんが拾って諸々進めてくれた、という話です。自分はイベント内容の案をだしたり、技術検証やサンプルプログラムを作成したりしました。 イベント概要 イベント概要は以下の通りです 期間: 2023/07/06 - 2023/07/14 (9日間) 場所: オンライン(初日・最終日はオフラインとのハイブリッド開催) 参加数: 20チーム 提供リソース: Vノード(1000 ABCIポイント) サポート: チューター(言語モデルや機械学

    ABCIの大規模言語モデル分散学習ハッカソンを振り返る
    sh19910711
    sh19910711 2023/08/16
    "チーム毎に1000ポイント付与 + V100を4000時間利用できる / NVIDIAの中の人に分散処理のあれこれを質問できて、一緒に問題解決に取り組んでもらえる機会はなかなかない"
  • NVLink BridgeでGPUを繋いでも1GPUにはなりません | HPCシステムズ Tech Blog

    『NVLink Bridgeで複数GPUを繋いだら、それらが1GPUとして扱えるようになるんでしょ?』という誤解をされているお客様をしばしばお見受けいたします。こちらの記事では、それが誤解であること、また、SLIやUnified Memoryといった関連する情報についても整理して解説いたします。間違った期待を抱いて失敗しないように、正しい理解を深めていきましょう。 GPUのメモリ空間は他デバイスから隔絶されています GPU上には演算するためのプロセッサと、データを一時的に置いておくためのメモリ(VRAM)が搭載されています。GPUのメモリを、CUDAで書かれたプログラムから利用するには、cudaMallocでメモリ領域を確保し、cudaMemcpyを使ってホスト(CPU側)のメモリとデータの送受信を行い、GPU上で演算kernelとする関数(以下、GPU-Kernel)を呼び出し、最後にc

    NVLink BridgeでGPUを繋いでも1GPUにはなりません | HPCシステムズ Tech Blog
    sh19910711
    sh19910711 2023/07/21
    "NVLink接続: GPU間の通信帯域は向上 + メモリアドレス空間がGPU間で統合されたり拡張されたりはしない / CUDAで Unified Memory を使うには、通常の cudaMemcpy() ではなくcudaMemcpyManaged() というAPI関数を使用してメモリ確保をする必要"