Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment