File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -192,6 +192,18 @@ static inline int32_t opal_convertor_on_device(const opal_convertor_t *pConverto
192
192
return !!(pConvertor -> flags & CONVERTOR_ACCELERATOR );
193
193
}
194
194
195
+ static inline int32_t opal_convertor_on_discrete_device (const opal_convertor_t * pConvertor )
196
+ {
197
+ return (CONVERTOR_ACCELERATOR == ((pConvertor -> flags & CONVERTOR_ACCELERATOR ) |
198
+ (pConvertor -> flags & CONVERTOR_ACCELERATOR_UNIFIED )));
199
+ }
200
+
201
+ static inline int32_t opal_convertor_on_unified_device (const opal_convertor_t * pConvertor )
202
+ {
203
+ return (!!(pConvertor -> flags & CONVERTOR_ACCELERATOR ) &&
204
+ !!(pConvertor -> flags & CONVERTOR_ACCELERATOR_UNIFIED ));
205
+ }
206
+
195
207
/**
196
208
* Update the size of the remote datatype representation. The size will
197
209
* depend on the configuration of the master convertor. In homogeneous
Original file line number Diff line number Diff line change @@ -430,7 +430,9 @@ static struct mca_btl_base_descriptor_t *sm_prepare_src(struct mca_btl_base_modu
430
430
431
431
/* in place send fragment */
432
432
if (OPAL_UNLIKELY (opal_convertor_need_buffers (convertor ) ||
433
- opal_convertor_on_device (convertor ))) {
433
+ opal_convertor_on_discrete_device (convertor ) ||
434
+ (opal_convertor_on_unified_device (convertor ) &&
435
+ total_size > (size_t ) mca_btl_sm_component .max_inline_send ))) {
434
436
uint32_t iov_count = 1 ;
435
437
struct iovec iov ;
436
438
You can’t perform that action at this time.
0 commit comments