good first issue
倉庫指標
- 星標
- (80 顆星)
- PR 合併指標
- (PR 指標待抓取)
描述
Motivation: Finding out if a matrix contains any special values (e.g., nan, inf, or any other value that is special in some context, say 42) is an important task and whether a matrix contains a certain special value can be seen as an interesting data characteristic. DAPHNE implements a hasSpecialValue-kernel that finds out if a given matrix contains a given special value, whereby it behaves nan-safe. So far, this kernel has not been connected to DaphneDSL yet. Hence, DAPHNE users cannot use it.
Task: Connect the hasSpecialValue-kernel to DaphneDSL. To this end you should:
- Have a look at the kernel in
src/runtime/local/kernels/hasSpecialValue.h. - Make sure that it gets instantiated/precompiled for a couple of relevant combinations of data types (e.g.,
DenseMatrixandCSRMatrix) and value types (e.g.,doubleandint64_t) insrc/runtime/local/kernels.json. - Add a DaphneIR operation
HasSpecialValueinsrc/ir/daphneir/DaphneOps.td. See also the MLIR documentation. - Add a DaphneDSL built-in function
hasSpecialValuethat generates aHasSpecialValuein the IR insrc/parser/daphnedsl/DaphneDSLBuiltins.cpp. - Add script-level test cases for the new DaphneDSL built-in function in
test/api/cli/operations/. See the guidelines on testing in DAPHNE. Unit tests for the kernel do already exist intest/runtime/local/HasSpecialValueTest.cpp.