UCX MacOS port is under construction. So far, only ucx_info
is built
Other conponents (gtests, examples, tools/perf, toos/profile) are future work.
# First, clone UCX repository
$ git clone https://github.com/openucx/ucx.git
$ cd ucx
# Fetch a set of patches from our fork
$ BRANCH_NAME="mac-os-build"
$ git remote add hiroyuki-sato https://github.com/hiroyuki-sato/ucx
$ git fetch hiroyuki-sato
# Create a new branch to build on MacOS
$ git checkout -b $BRANCH_NAME
# Apply all patches.
$ for branch in $( git branch -a | grep remotes/hiroyuki-sato/macos/0 | \
awk '{ print $NF }' | sort -n ) ; do
merge_branch=$( echo $branch | sed -e 's/remotes\///' )
echo ""
echo "***********************************************************************"
echo "*"
echo "* Merge branch $merge_branch "
echo "*"
echo "***********************************************************************"
echo $merge_branch
git merge --no-ff --no-edit "$merge_branch"
done
$ git merge --no-ff --no-edit hiroyuki-sato/macos/disable-shm_remap-temp
# Download & build dependency
$ git clone https://github.com/ARM-software/progress64
$ cd progress64; make all; cd ..
$ ./autogen.sh && ./configure --disable-numa --with-progress64=$PWD/progress64 --disable-shared
# We need some more patches...
$ gsed -i.bak 's/UCM_MODULE_LDFLAGS =/UCM_MODULE_LDFLAGS =#/' src/ucm/Makefile
$ gsed -i.bak -e 's/(field_mask %zu)/(field_mask %"PRIu64")/' src/ucp/wireup/wireup_cm.c
# Run make
$ for TARGET in src/ucm src/ucs src/uct src/ucp src/tools/info ; do make SED=gsed -C $TARGET; done
$ ./src/tools/info/ucx_info -c
UCX_NET_DEVICES=all
UCX_SHM_DEVICES=all
UCX_ACC_DEVICES=all
UCX_SELF_DEVICES=all
UCX_TLS=all
UCX_ALLOC_PRIO=md:sysv,md:posix,huge,thp,md:*,mmap,heap
UCX_SOCKADDR_TLS_PRIORITY=rdmacm,tcp,sockcm
UCX_SOCKADDR_AUX_TLS=ud
UCX_WARN_INVALID_CONFIG=y
UCX_BCOPY_THRESH=0
UCX_RNDV_THRESH=auto
UCX_RNDV_SEND_NBR_THRESH=256K
UCX_RNDV_THRESH_FALLBACK=inf
UCX_RNDV_PERF_DIFF=1.000
UCX_MULTI_LANE_MAX_RATIO=10.000
UCX_MAX_EAGER_RAILS=1
UCX_MAX_RNDV_RAILS=2
UCX_RNDV_SCHEME=auto
UCX_RKEY_PTR_SEG_SIZE=512K
UCX_ZCOPY_THRESH=auto
UCX_BCOPY_BW=auto
UCX_ATOMIC_MODE=guess
UCX_ADDRESS_DEBUG_INFO=n
UCX_MAX_WORKER_NAME=32
UCX_USE_MT_MUTEX=n
UCX_ADAPTIVE_PROGRESS=y
UCX_SEG_SIZE=8K
UCX_TM_THRESH=1K
UCX_TM_MAX_BB_SIZE=1K
UCX_TM_FORCE_THRESH=8K
UCX_TM_SW_RNDV=n
UCX_NUM_EPS=auto
UCX_NUM_PPN=auto
UCX_RNDV_FRAG_SIZE=512K
UCX_RNDV_PIPELINE_SEND_THRESH=inf
UCX_MEMTYPE_CACHE=y
UCX_FLUSH_WORKER_EPS=y
UCX_UNIFIED_MODE=n
UCX_SOCKADDR_CM_ENABLE=n
UCX_LISTENER_BACKLOG=auto
UCX_PROTO_ENABLE=n
UCX_PROTO_INDIRECT_ID=auto