如果某些OpenCL函数的任何参数是NAN
或INFINITY
等非标准浮点数,则会导致内核崩溃。我试图通过包装我的参数来消除这些崩溃,以消除不良值。
以下是我尝试创建参数消毒剂的三个尝试:
clean_arg = clamp(dirty_arg, 1, 10000);
崩溃clean_arg = convert_float(convert_int(dirty_arg));
Hacky clean_arg = isnan(dirty_arg) ? 1 : dirty_arg;
详细有没有更好的方法来检测和删除不需要的浮点值?