I'am working on the C++ coverage for transpose, found that transpose_2d_logical was skipped.
Codes in cunumeric/cunumeric/array.py ,in the initialization method,
self._thunk = runtime.find_or_create_array_thunk(
np_array, share=False
)
Codes in cunumeric/cunumeric/runtime.py,
find_or_create_array_thunk has these codes:
# This is not a scalar so make a field
store = self.legate_context.create_store(
dtype,
shape=array.shape,
optimize_scalar=False,
)
the optimize_scalar is set to False, did this mean the Array is stored in physical way and the logical value in struct TransposeImplBody (src/cunumeric/matrix/transpose.cu) is False, so it only calls transpose_2d_physical and skips transpose_2d_logical.
Codes in src/cunumeric/matrix/transpose.cu:
if (logical)
transpose_2d_logical<VAL>
<<<blocks, threads, 0, stream>>>(out, in, in_rect.lo, in_rect.hi, out_rect.lo, out_rect.hi);
else
transpose_2d_physical<VAL>
<<<blocks, threads, 0, stream>>>(out, in, in_rect.lo, in_rect.hi, out_rect.lo, out_rect.hi);
I'am working on the C++ coverage for transpose, found that
transpose_2d_logicalwas skipped.Codes in cunumeric/cunumeric/array.py ,in the initialization method,
Codes in cunumeric/cunumeric/runtime.py,
find_or_create_array_thunkhas these codes:the
optimize_scalaris set to False, did this mean the Array is stored in physical way and thelogicalvalue in structTransposeImplBody(src/cunumeric/matrix/transpose.cu) is False, so it only callstranspose_2d_physicaland skipstranspose_2d_logical.Codes in src/cunumeric/matrix/transpose.cu: