1、OPEN FABRIC INTERFACE 2.0 UPDATEJianxin XiongIntel Corporation2024 OFA Virtual WorkshopOUTLINE2 OpenFabrics AllianceIntroductionProposed OFI 2.0 ChangesTimelineOFI FeaturesOFI ArchitectureEnable advanced fabric featuresOptimized software pathsOS bypassZero-copy transfersMinimized memory footprintFab
2、ric portabilitySingle API,many providersImplementation flexibility for providersCapability discovery at runtimeOFI(LIBFABRIC)IN A NUTSHELL OpenFabrics Alliance3provprovcoremsgtaggedrmaatomicscollectivesdiscoverycmAPIdata transfercqeqcntrcompcontrolavcommImplutilsfabricdomainmrepProvidersTimelineInit
3、ial libfabric commit:Nov 7,2013libfabric v1.0.0:Apr 6,2016libfabric v1.21.0(the latest):Mar 29,202455 releases in total,feature+bug fixmajor new features since v1.0.0Authorization keys,multicast,FI_ADDR_STR,FI_LOCAL_COMM,FI_REMOTE_COMM,FI_HMEM,FI_CONTEXT2,new MR mode bits,FI_RMA_PMEM,NIC attributes,
4、collectivesmiddlewareIntel MPI,OpenMPI,MPICH,SHMEM,GASNet,Charm+,oneCCL,NCCL,DAOS,THE SUCCESS OF GROWTH OpenFabrics Alliance4cxicxiefaefaopxopxpsm2psm2psm3psm3shmshmtcptcpudpudpucxucxverbsverbspsmpsmsocketssocketsusnicusnicverbsverbsusnicusnicsocketssocketsv1.0.0v1.21.0rxmrxmrxdrxdABI 1.0ABI 1.7hook
5、hookWHY 2.0?We have been able to maintain API and ABI backward compatibility so farAPI:existing application source should be able to compile against newer libfabric headers&libraries and runABI:existing application binary should be able to run with newer libfabric librariesThis is possible because:A
6、PI changes are always“appending”,never“removing”or“reordering”ABI compatibility stubs are used to do runtime data-structure/parameter conversionBumping the version to 2.0 allows making changes that breaks API/ABI compatibilitySimplification:remove rare used/hard to use features/options present easie