@@ -53,9 +53,9 @@ mca_spml_ucx_t mca_spml_ucx = {
53
53
mca_spml_ucx_deregister ,
54
54
mca_spml_base_oob_get_mkeys ,
55
55
mca_spml_ucx_put ,
56
- mca_spml_base_put_nb , /* todo: mca_spml_ucx_put_nb, */
56
+ mca_spml_ucx_put_nb ,
57
57
mca_spml_ucx_get ,
58
- mca_spml_base_get_nb , /* todo: mca_spml_ucx_get_nb, */
58
+ mca_spml_ucx_get_nb ,
59
59
mca_spml_ucx_recv ,
60
60
mca_spml_ucx_send ,
61
61
mca_spml_base_wait ,
@@ -391,6 +391,19 @@ int mca_spml_ucx_get(void *src_addr, size_t size, void *dst_addr, int src)
391
391
return ucx_status_to_oshmem (status );
392
392
}
393
393
394
+ int mca_spml_ucx_get_nb (void * src_addr , size_t size , void * dst_addr , int src , void * * handle )
395
+ {
396
+ void * rva ;
397
+ ucs_status_t status ;
398
+ spml_ucx_mkey_t * ucx_mkey ;
399
+
400
+ ucx_mkey = mca_spml_ucx_get_mkey (src , src_addr , & rva );
401
+ status = ucp_get_nbi (mca_spml_ucx .ucp_peers [src ].ucp_conn , dst_addr , size ,
402
+ (uint64_t )rva , ucx_mkey -> rkey );
403
+
404
+ return ucx_status_to_oshmem (status );
405
+ }
406
+
394
407
int mca_spml_ucx_put (void * dst_addr , size_t size , void * src_addr , int dst )
395
408
{
396
409
void * rva ;
@@ -404,6 +417,19 @@ int mca_spml_ucx_put(void* dst_addr, size_t size, void* src_addr, int dst)
404
417
return ucx_status_to_oshmem (status );
405
418
}
406
419
420
+ int mca_spml_ucx_put_nb (void * dst_addr , size_t size , void * src_addr , int dst , void * * handle )
421
+ {
422
+ void * rva ;
423
+ ucs_status_t status ;
424
+ spml_ucx_mkey_t * ucx_mkey ;
425
+
426
+ ucx_mkey = mca_spml_ucx_get_mkey (dst , dst_addr , & rva );
427
+ status = ucp_put_nbi (mca_spml_ucx .ucp_peers [dst ].ucp_conn , src_addr , size ,
428
+ (uint64_t )rva , ucx_mkey -> rkey );
429
+
430
+ return ucx_status_to_oshmem (status );
431
+ }
432
+
407
433
int mca_spml_ucx_fence (void )
408
434
{
409
435
ucs_status_t err ;
0 commit comments