chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
import ray
|
||||
|
||||
# __max_replicas_per_node_start__
|
||||
from ray import serve
|
||||
|
||||
|
||||
@serve.deployment(num_replicas=6, max_replicas_per_node=2, ray_actor_options={"num_cpus": 0.1})
|
||||
class MyDeployment:
|
||||
def __call__(self, request):
|
||||
return "Hello!"
|
||||
|
||||
|
||||
app = MyDeployment.bind()
|
||||
# __max_replicas_per_node_end__
|
||||
|
||||
# __placement_group_start__
|
||||
from ray import serve
|
||||
|
||||
|
||||
@serve.deployment(
|
||||
ray_actor_options={"num_cpus": 0.1},
|
||||
placement_group_bundles=[{"CPU": 0.1}, {"CPU": 0.1}],
|
||||
placement_group_strategy="STRICT_PACK",
|
||||
)
|
||||
class MultiCPUModel:
|
||||
def __call__(self, request):
|
||||
return "Processed with 2 CPUs"
|
||||
|
||||
|
||||
multi_cpu_app = MultiCPUModel.bind()
|
||||
# __placement_group_end__
|
||||
|
||||
# __placement_group_labels_start__
|
||||
@serve.deployment(
|
||||
ray_actor_options={"num_cpus": 0.1},
|
||||
placement_group_bundles=[{"CPU": 0.1, "GPU": 1}],
|
||||
placement_group_bundle_label_selector=[
|
||||
{"ray.io/accelerator-type": "A100"}
|
||||
]
|
||||
)
|
||||
def PlacementGroupBundleLabelSelector(request):
|
||||
return "Running in PG on A100"
|
||||
|
||||
pg_label_app = PlacementGroupBundleLabelSelector.bind()
|
||||
# __placement_group_labels_end__
|
||||
|
||||
# __label_selectors_start__
|
||||
from ray import serve
|
||||
|
||||
|
||||
# Schedule only on nodes with A100 GPUs
|
||||
@serve.deployment(ray_actor_options={"label_selector": {"ray.io/accelerator-type": "A100"}})
|
||||
class A100Model:
|
||||
def __call__(self, request):
|
||||
return "Running on A100"
|
||||
|
||||
|
||||
# Schedule only on nodes with T4 GPUs
|
||||
@serve.deployment(ray_actor_options={"label_selector": {"ray.io/accelerator-type": "T4"}})
|
||||
class T4Model:
|
||||
def __call__(self, request):
|
||||
return "Running on T4"
|
||||
|
||||
|
||||
a100_app = A100Model.bind()
|
||||
t4_app = T4Model.bind()
|
||||
# __label_selectors_end__
|
||||
|
||||
# __fallback_strategy_start__
|
||||
@serve.deployment(
|
||||
ray_actor_options={
|
||||
"label_selector": {"zone": "us-west-2a"},
|
||||
"fallback_strategy": [{"label_selector": {"zone": "us-west-2b"}}]
|
||||
}
|
||||
)
|
||||
class SoftAffinityDeployment:
|
||||
def __call__(self, request):
|
||||
return "Scheduling to a zone with soft constraints!"
|
||||
|
||||
soft_affinity_app = SoftAffinityDeployment.bind()
|
||||
# __fallback_strategy_end__
|
||||
|
||||
# __label_selector_main_start__
|
||||
if __name__ == "__main__":
|
||||
# RayCluster with resources to run example tests.
|
||||
ray.init(
|
||||
labels={
|
||||
"ray.io/accelerator-type": "A100",
|
||||
"zone": "us-west-2b",
|
||||
},
|
||||
num_cpus=16,
|
||||
num_gpus=1,
|
||||
resources={"my_custom_resource": 10},
|
||||
)
|
||||
|
||||
serve.run(a100_app, name="a100", route_prefix="/a100")
|
||||
# __label_selector_main_end__
|
||||
|
||||
# Run remaining doc code.
|
||||
serve.run(MyDeployment.options(max_replicas_per_node=6).bind(), name="max_replicas", route_prefix="/max_replicas")
|
||||
|
||||
serve.run(multi_cpu_app, name="multi_cpu", route_prefix="/multi_cpu")
|
||||
|
||||
serve.run(pg_label_app, name="pg_label", route_prefix="/pg_label")
|
||||
|
||||
serve.run(soft_affinity_app, name="soft_affinity", route_prefix="/soft_affinity")
|
||||
|
||||
serve.shutdown()
|
||||
ray.shutdown()
|
||||
Reference in New Issue
Block a user