heterodb/pg-strom

money型でCUDA_ERROR_ASSERT

Closed this issue · 2 comments

#624 を再確認したところ、CUDA_ERROR_ASSERTが発生しています。

SET pg_strom.regression_test_mode = on;
DROP SCHEMA IF EXISTS regtest_miscs CASCADE;
CREATE SCHEMA regtest_miscs;
CREATE EXTENSION IF NOT EXISTS pg_strom;
SET pg_strom.enabled=on;
SET enable_seqscan=0;

CREATE TABLE t1(c0 money , c1 money);
INSERT INTO t1(c0, c1) VALUES(1, 1);
SELECT SUM(t1.c1) FROM t1;

発生メッセージ

ERROR:  gpu_service.c:1997  failed on cuEventSynchronize: CUDA_ERROR_ASSERT
HINT:  device at GPU-0, function at gpuservHandleGpuTaskExec

これ、どこかのタイミングで入れた assert() チェックに引っかかってます。
元々横着して、money型のmin, max, sumをint64の集約関数にブチ込んでいた(バイナリ的に同じだったので問題ない)のですが、入力値の型をチェックするようになって怒られが発生するようです。
assert()を外すより、きちんとmoney型のハンドリングをするようにしました。

確認できました。クローズします。