トップ 最新 追記

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2022-12-13 [長年日記]

_ [FreeBSD]12.4-RELEASEは無事に出たみたいだが…

この後、13.2と14.0のリリースエンジニアリングの予定が数珠つなぎなっている

どのタイミングで、14-STABLEに移るべきかねぇ…


2022-12-16 [長年日記]

_ LAPACKE_dgelsdでハマる

LAPACKE_dgelsdが返り値-7でエラーになるケースに悩まされた

  • 同一バイナリでも、バイナリの絶対パスや環境変数の初期状態で結果が変わる(正常に動いたり、エラーになったり)
  • DGELSDのエラー条件を調べても、エラー条件を満足しない

原因は、LAPACKEラッパー側にあった模様

入力値にNaNが含まれるかどうか調べてるコードがラッパー側にあり、b配列をトラップしていた

GELSDのb配列次元は LDB x NRHSで、入力はM-by-NRHSなのでM行目まで埋めればよく、出力はN-by-NRHSなのでN行目まで埋められる。 ここで、LDB >= max(1, M, N)、一般にN > Mの場合、b配列の後半は呼び出し時点で初期化する必要はない。

一方、GELSDラッパーの入力値検査で、LAPACKE_dge_nancheck( matrix_layout, MAX(m,n), nrhs, b, ldb )によりb配列をmax(M, N)-by-NRHSの領域を検査している。

したがって、N > Mかつb配列をヒープから割り当て or 再利用時には、b配列の未初期化領域にNaNが挟まっているとLAPACKE_*gelsdインターフェース経由だとエラーになる

入力値の定義的には、検査コードはLAPACKE_dge_nancheck( matrix_layout, m, nrhs, b, ldb )であるべきと思われる

対処療法

  • LAPACKEを-DLAPACK_DISABLE_NAN_CHECKでビルドする (ライブラリを自分で導入出来る環境のみ)
  • b配列の全領域を明示的に初期化する(メモリ帯域を損する)
  • 環境変数LAPACKE_NANCHECK0を設定する
    • LAPACKE_get_nancheck()経由で、当該検査機構が無効化される
    • 環境変数の評価は、内部変数にキャッシュされる

カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記