私は 5 つの入れ子になった for ループ関数 (3D フィルターによる画像の畳み込み) を持っており、それをスピードアップする必要があり、numba の @autojit デコレーターを非常に喜んで使用しました。私が持っている唯一の不満は、関数が初めて呼び出されたときです.numbaはautojitを実行しますが、jitされた関数の内部表現であると思われるものを標準出力に出力します。これは、スクロールするのに数秒かかる場合があります。
empty1: ; preds = %empty
%16 = call i32 inttoptr (i64 139980888423164 to i32 ({ i64, i8* }*)*)({ i64, i8* }* %10)
br label %empty3
empty2: ; preds = %empty
br label %error_label
empty3: ; preds = %empty1
%17 = call i8* @PyErr_Occurred()
%18 = ptrtoint i8* %17 to i64
%19 = icmp ne i64 %18, 0
br i1 %19, label %empty5, label %empty4
empty4: ; preds = %empty3
%20 = call { i64, i8* }* @__numba_specialized_2___main___2E_max_pool({ i64, i8*, i8*, i32, i64*, i64*, i8*, i8*, i32, i8* }* %11, i32 %12, i32 %16)
store { i64, i8* }* %20, { i64, i8* }** %objtemp, !tbaa !6
%21 = ptrtoint { i64, i8* }* %20 to i64
%22 = icmp eq i64 %21, 0
br i1 %22, label %error_label, label %no_error
empty5: ; preds = %empty3
br label %error_label
no_error: ; preds = %empty4
%23 = load { i64, i8* }** %objtemp, !tbaa !6
store { i64, i8* }* %23, { i64, i8* }** %return_value
%24 = load { i64, i8* }** %return_value, !tbaa !6
call void @Py_XINCREF({ i64, i8* }* %24)
br label %cleanup_label
}
!tbaa = !{!0, !1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !0, !1, !6, !0, !1, !2, !3, !4, !5, !6, !24, !12, !7, !13, !14, !15, !16, !17, !25, !0, !1, !6}
これを無効にする方法を知っている人はいますか?うまく動作し、高速で、エラーをスローしませんが、少し面倒です。