llama.cppのb11815では、SYCLバックエンドがチャンネル順の入力とカーネルを使った2次元畳み込み(Conv2D)を処理する方法が修正された。従来は、非連続の入力を誤った要素オフセットで読み込み、誤った結果をエラーなく返すことがあった。
今回の変更では、CUDAバックエンドの仕様に合わせ、入力とカーネルを連続したメモリ配置の場合に限って処理するようにし、入力の連続性を確認するチェックを追加した。プロジェクトによると、SYCLのConv2Dテストは16件の失敗がゼロになり、2,006件中2,006件が合格した。
なぜ重要か
llama.cppのSYCLバックエンドを使う開発者にとって、Conv2Dが誤った結果をエラーなく返すケースへの対処となる。ただし、リリースノートには、どのアプリケーションやハードウェアでこのレイアウトに遭遇する可能性があるかは記載されていない。