SHMEM Env Vars

初始化相关

使用unique id的接口初始化时,需要手动配置环境变量SHMEM_UID_SESSION_ID或者SHMEM_UID_SOCK_IFNAME,同时配置时只读SHMEM_UID_SESSION_ID。指定SHMEM_UID_SESSION_ID时需保证ip可连通,port空闲。指定SHMEM_UID_SOCK_IFNAME时需保证网口指定的网络协议地址存在。

  • SHMEM_UID_SESSION_ID:直接指定PE 0的监听socket的ip和端口,支持格式:

    • IPv4字面量ip:port,如 SHMEM_UID_SESSION_ID=192.168.1.100:1234

    • IPv6字面量[ip]:port,如 SHMEM_UID_SESSION_ID=[::1]:886

    • 主机名hostname:port,如 SHMEM_UID_SESSION_ID=my-server:5555(主机名通过系统名称解析服务(DNS、/etc/hosts 等)解析为实际 IP 地址) SHMEM_UID_SESSION_ID配置示例: SHMEM_UID_SESSION_ID=127.0.0.1:1234 SHMEM_UID_SESSION_ID=[6666:6666:6666:6666:6666:6666:6666:6666]:886 SHMEM_UID_SESSION_ID=localhost:8888

  • SHMEM_UID_SOCK_IFNAME:指定PE 0的监听socket的网口名和网络层协议。 SHMEM_UID_SOCK_IFNAME配置示例: SHMEM_UID_SOCK_IFNAME=enpxxxx:inet4 取ipv4 SHMEM_UID_SOCK_IFNAME=enpxxxx:inet6 取ipv6

以上两个环境变量均未配置时自动搜索可用网口(IPv4/IPv6均可,跳过lo/docker/veth/br-/virbr/tun/tap等虚拟网口)。

RDMA场景

使能RDMA场景下,配置TC和SL

  • HCCL_RDMA_TC: 复用HCCL的环境变量,配置RDMA网卡的traffic class。该环境变量的取值范围为[0, 255],且需要配置为4的整数倍,默认值: 132。参考链接

  • HCCL_RDMA_SL: 复用HCCL的环境变量,配置RDMA网卡的service level。该值需要和网卡配置的PFC优先级保持一致,若配置不一致可能导致性能劣化。该环境变量需要配置为整数,取值范围为[0, 7], 默认值: 4。参考链接

多实例相关

由于每个实例都有独立的bootstrap,每个bootstrap构建时需要提供一个可用端口

  • SHMEM_INSTANCE_PORT_RANGE:直接指定可用的端口范围。 SHMEM_INSTANCE_PORT_RANGE配置示例: export SHMEM_INSTANCE_PORT_RANGE=1024:2047

日志相关

日志相关环境变量及详细介绍见SHMEM日志

Profiling相关

SHMEM提供Profiling打点工具,通过采集系统时钟周期数并转换为实际时间,精准量化不同Block(计算核)、不同Frame(埋点 ID)下的MTE搬运性能,详细介绍请参考在示例中使用Profiling工具.

  • SHMEM_CYCLE_PROF_PE: 用于设置需要进行Profiling采集的pe,pe_id设置范围[0,PEs-1],需要取消采集请unset SHMEM_CYCLE_PROF_PE