ReemaAlzaid commented on PR #12471:
URL: https://github.com/apache/gluten/pull/12471#issuecomment-5191664095

   > Thanks for working on this issue. Adding check and conversion from 
CudfVector to RowVector do avoid runtime failure.
   > 
   > However, in my opinion, it's expected that the output from gpu pipeline 
should always be converted into `RowVector` when the pipeline ends or the next 
operator is not a `CudfOperator` (such as shuffle write, file write, c2r, etc), 
so I wonder why the input of the c2r for q15 is not being converted. Is there 
any findings on the cause? Or please point me out if I miss understood 
something.
   > 
   > I also wonder if making this change general (adding guard on every 
RowVector retrieval) may burry some real issues.
   
   your right about the design inside a Velox pipeline, but in Gluten, batches 
also cross the JNI boundary through channels the auto inserter can't see, and 
their CPU/GPU is only known at runtime we verified GPU vectors reaching C2R 
(q15) and CPU vectors reaching GPU ops (q18), plus GPU vectors being silently 
serialized as 0 rows (the empty-broadcast-join root cause). The guards sit only 
at those boundary consumers, not everywhere. To avoid hiding real bugs, I'll 
add a warning log when a guard actually fires, and I can post the q15 operator 
dump if you want to chase the exact insertion gap


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to