Pearu Peterson
Pearu Peterson
- [ ] Document and illustrate how to enforce target devices (`devices` kw of `Signature`, `__cpu_` and `__gpu_` prefixes) - [ ] etc.
Example: ``` @omnisci(int32(Matrix, int32, RowMultiplier, OutputColumn), T=['double', 'float', 'int64', 'int32', ...]) def get_column_by_index(matrix, column_index, m, output): if 0
A UDF returning Array or any other Buffer object must explicitly copy the data to the returning object. For instance, ``` @omnisci('int32[](int32[])') def mypass(s): r = Array(len(s), 'int32') for i...
Lazily link udfs/udtfs so that we don’t force all kernels to CPU if one UDTF or UDF cannot run on GPU
Example: ``` @omnisci('int32(Column, RowMultiplier, OutputColumn)') def text_rbc_copy_rowmul(x, m, y): for i in range(len(x)): y[i] = x[i] return len(x) @omnisci('int32(Cursor, RowMultiplier, OutputColumn, OutputColumn)') def text_rbc_copy_rowmul(x, x2, m, y, y2): for i...
The following query crashes CPU only server: ``` select covar_pop(out0, out1) from table(test_rbc_mycopy3(cursor(select f8, d, b from test_omnisci_column_basic), 1)) group by out2 ``` with the following gdb traceback: ``` Thread...
The error is raised from a UDF definition such as ``` def foo(n): tmp = np.zeros(n) ... ``` Task: improve error message and if possible, give a hint for possible...
For scratch space in a UDTF one could use the auxiliary output column argument. For instance, ``` @omnisci('int32(Cursor, RowMultiplier, OutputColumn, OutputColumn)') def foo(x, m, out, tmp): # tmp has length...
Something like the following should work ``` @omnisci('int32(Column, Column, RowMultiplier, OutputColumn)') def foo(x, y, m, z): if x.table_id == y.table_id: # do something else: # do something different ``` Risks:...