2025-05-19 17:35:33 +00:00
|
|
|
load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory")
|
|
|
|
|
load("@zml//bazel:patchelf.bzl", "patchelf")
|
|
|
|
|
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
|
|
|
|
load("@bazel_skylib//rules:select_file.bzl", "select_file")
|
|
|
|
|
load("@rules_cc//cc:cc_shared_library.bzl", "cc_shared_library")
|
|
|
|
|
load("@zml//bazel:runfiles.bzl", "runfiles_to_default")
|
2025-07-15 15:26:03 +00:00
|
|
|
load("@rules_python//python:py_binary.bzl", "py_binary")
|
2025-05-19 17:35:33 +00:00
|
|
|
|
|
|
|
|
runfiles_to_default(
|
|
|
|
|
name = "libneuronxla_files",
|
|
|
|
|
deps = ["@neuron_py_deps//libneuronxla:pkg"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
select_file(
|
2025-07-15 15:26:03 +00:00
|
|
|
name = "libneuronpjrt_so_orig",
|
2025-05-19 17:35:33 +00:00
|
|
|
srcs = ":libneuronxla_files",
|
|
|
|
|
subpath = "site-packages/libneuronxla/libneuronpjrt.so",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
patchelf(
|
2025-07-15 15:26:03 +00:00
|
|
|
name = "libneuronpjrt_so",
|
2025-05-19 17:35:33 +00:00
|
|
|
set_rpath = '$ORIGIN',
|
2025-07-15 15:26:03 +00:00
|
|
|
src = ":libneuronpjrt_so_orig",
|
2025-05-19 17:35:33 +00:00
|
|
|
soname = "libneuronpjrt.so",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
patchelf(
|
2025-07-15 15:26:03 +00:00
|
|
|
name = "libpjrt_neuron_so",
|
2025-05-19 17:35:33 +00:00
|
|
|
set_rpath = '$ORIGIN',
|
2025-07-15 15:26:03 +00:00
|
|
|
src = "@zml//runtimes/neuron:libpjrt_neuron",
|
2025-05-19 17:35:33 +00:00
|
|
|
soname = "libpjrt_neuron.so",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
copy_to_directory(
|
|
|
|
|
name = "sandbox",
|
|
|
|
|
srcs = [
|
2025-07-15 15:26:03 +00:00
|
|
|
":libneuronpjrt_so",
|
|
|
|
|
":libpjrt_neuron_so",
|
|
|
|
|
"@zml//runtimes/neuron:neuronx-cc_files",
|
|
|
|
|
"@zml//runtimes/neuron:libneuronxla",
|
|
|
|
|
"@rules_python//python:current_py_toolchain",
|
2025-05-19 17:35:33 +00:00
|
|
|
"@aws-neuronx-runtime-lib//:libnrt.patchelf",
|
|
|
|
|
"@aws-neuronx-runtime-lib//:libncfw.patchelf",
|
|
|
|
|
"@aws-neuronx-collectives//:libnccom",
|
|
|
|
|
"@zlib1g",
|
|
|
|
|
"@libgomp1",
|
|
|
|
|
],
|
|
|
|
|
replace_prefixes = {
|
2025-07-15 15:26:03 +00:00
|
|
|
"runtimes/neuron/neuronx-cc": "bin/neuronx-cc",
|
|
|
|
|
"runtimes/neuron/libneuronxla.so": "site-packages/libneuronxla.so",
|
|
|
|
|
"libneuronpjrt_so": "lib",
|
|
|
|
|
"libpjrt_neuron_so": "lib",
|
2025-05-19 17:35:33 +00:00
|
|
|
"libnrt.patchelf": "lib",
|
|
|
|
|
"libncfw.patchelf": "lib",
|
|
|
|
|
"lib/x86_64-linux-gnu": "lib",
|
|
|
|
|
"usr/lib/x86_64-linux-gnu": "lib",
|
|
|
|
|
"opt/neuron": "lib",
|
|
|
|
|
},
|
2025-07-15 15:26:03 +00:00
|
|
|
exclude_srcs_patterns = [
|
|
|
|
|
"**/tests/**",
|
|
|
|
|
"**/include/**",
|
|
|
|
|
"**/_solib_*/**",
|
|
|
|
|
],
|
|
|
|
|
include_srcs_patterns = [
|
|
|
|
|
"runtimes/neuron/neuronx-cc",
|
|
|
|
|
"**/lib**",
|
|
|
|
|
"lib/python*/**",
|
|
|
|
|
"site-packages/**",
|
|
|
|
|
],
|
|
|
|
|
allow_overwrites = True,
|
|
|
|
|
add_directory_to_runfiles = False,
|
2025-05-19 17:35:33 +00:00
|
|
|
include_external_repositories = ["**"],
|
2025-07-15 15:26:03 +00:00
|
|
|
hardlink = "on",
|
2025-05-19 17:35:33 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
cc_library(
|
2025-07-15 15:26:03 +00:00
|
|
|
name = "libnrt_headers",
|
2025-05-19 17:35:33 +00:00
|
|
|
deps = [
|
|
|
|
|
"@aws-neuronx-runtime-lib//:libnrt_headers",
|
|
|
|
|
],
|
|
|
|
|
linkopts = [
|
|
|
|
|
# Defer function call resolution until the function is called
|
|
|
|
|
# (lazy loading) rather than at load time.
|
|
|
|
|
#
|
|
|
|
|
# This is required because we want to let downstream use weak NRT symbols.
|
|
|
|
|
#
|
|
|
|
|
# We force it here because -z,now (which resolve all symbols at load time),
|
|
|
|
|
# is the default in most bazel CC toolchains as well as in certain linkers.
|
|
|
|
|
"-Wl,-z,lazy",
|
|
|
|
|
],
|
|
|
|
|
visibility = ["@zml//runtimes/neuron:__subpackages__"],
|
|
|
|
|
)
|
2025-07-15 15:26:03 +00:00
|
|
|
|
|
|
|
|
cc_library(
|
|
|
|
|
name = "libpjrt_neuron",
|
|
|
|
|
data = [":sandbox"],
|
|
|
|
|
visibility = ["@zml//runtimes/neuron:__subpackages__"],
|
|
|
|
|
)
|