Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Error in getgraph when graph is on gpu

オープン
#161 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
julia

調査の方向性

まず、提供された Julia スクリプトを実行し、報告されているパッケージバージョンを使って getgraph(g, 1) と getgraph(g |> gpu, 1) を比較します。getgraph のエントリポイントと、エラーに示されている GPU ブロードキャストを追跡します。GPU 呼び出しが報告されているカーネルコンパイル失敗なしに完了し、既存の動作が維持されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Running the following script

using Flux
using GraphNeuralNetworks

n = m = d = N = 10

g = Flux.batch([rand_graph(n, m, ndata=rand(d, n)) for i in 1:N])
getgraph(g, 1)
getgraph(g |> gpu, 1)

results in the following error message for the last call:

LoadError: GPU compilation of kernel broadcast_kernel(CUDA.CuKernelContext, CUDA.CuDeviceVector{Bool, 1}, Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(in), Tuple{Base.Broadcast.Extruded{CUDA.CuDeviceVector{Int64, 1}, Tuple{Bool}, Tuple{Int64}}, CUDA.CuRefValue{Vector{Int64}}}}, Int64) failed
KernelError: passing and using non-bitstype argument

Argument 4 to your kernel function is of type Base.Broadcast.Broadcasted{Nothing, Tuple{Base.OneTo{Int64}}, typeof(in), Tuple{Base.Broadcast.Extruded{CUDA.CuDeviceVector{Int64, 1}, Tuple{Bool}, Tuple{Int64}}, CUDA.CuRefValue{Vector{Int64}}}}, which is not isbits:
  .args is of type Tuple{Base.Broadcast.Extruded{CUDA.CuDeviceVector{Int64, 1}, Tuple{Bool}, Tuple{Int64}}, CUDA.CuRefValue{Vector{Int64}}} which is not isbits.
    .2 is of type CUDA.CuRefValue{Vector{Int64}} which is not isbits.
      .x is of type Vector{Int64} which is not isbits.

I am on Julia 1.7.2, Flux version 0.12.9 and GraphNeuralNetworks 0.3.14.
Edit: Also error with GNN 0.4.0 and Flux 0.13.0
Am I missing something?

主要言語
Julia
スター
309
フォーク
74
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaGraphs/GraphNeuralNetworks.jl のほかの issue

JuliaGraphs/GraphNeuralNetworks.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。