diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..d3084335 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +start-gpu: + docker compose -f docker-compose.yml -f docker-compose-gpu.yml up + +start-cpu: + docker compose -f docker-compose.yml -f docker-compose-cpu.yml up \ No newline at end of file diff --git a/docker-compose-cpu.yml b/docker-compose-cpu.yml new file mode 100644 index 00000000..43461176 --- /dev/null +++ b/docker-compose-cpu.yml @@ -0,0 +1,8 @@ +version: '3.8' + +services: + serving: + deploy: + resources: + reservations: + devices: [] diff --git a/docker-compose-gpu.yml b/docker-compose-gpu.yml new file mode 100644 index 00000000..54a9edb1 --- /dev/null +++ b/docker-compose-gpu.yml @@ -0,0 +1,11 @@ +version: '3.8' + +services: + serving: + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["${GPU_DEVICE}"] + capabilities: [ gpu ] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 75a3a0f8..3d25430e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,13 +9,8 @@ services: userns_mode: "host" volumes: - ./models:/models:z - deploy: - resources: - reservations: - devices: - - driver: nvidia - device_ids: ["${GPU_DEVICE}"] - capabilities: [ gpu ] + ports: + - "8501:8501" shm_size: 8GB develop: diff --git a/models/3dmolms/3dmolms_test/1/model.py b/models/3dmolms/3dmolms_test/1/model.py new file mode 100644 index 00000000..0270dcdd --- /dev/null +++ b/models/3dmolms/3dmolms_test/1/model.py @@ -0,0 +1,25 @@ +import json +import triton_python_backend_utils as pb_utils + + +class TritonPythonModel: + def __init__(self): + super().__init__() + self.output_dtype = [] + + def initialize(self, args): + model_config = json.loads(args["model_config"]) + output0_config = pb_utils.get_output_config_by_name(model_config, "charge_norm") + self.output_dtype = pb_utils.triton_string_to_numpy(output0_config["data_type"]) + + def execute(self, requests): + responses = [] + for request in requests: + raw = pb_utils.get_input_tensor_by_name(request, "charge_raw") + norm = raw.as_numpy() * 0.1 + ce_tensor = pb_utils.Tensor("charge_norm", norm.astype(self.output_dtype)) + responses.append(pb_utils.InferenceResponse(output_tensors=[ce_tensor])) + return responses + + def finalize(self): + pass \ No newline at end of file diff --git a/models/3dmolms/3dmolms_test/config.pbtxt b/models/3dmolms/3dmolms_test/config.pbtxt new file mode 100644 index 00000000..ffba79f4 --- /dev/null +++ b/models/3dmolms/3dmolms_test/config.pbtxt @@ -0,0 +1,15 @@ +max_batch_size: 1000 +input[ + { + name: 'charge_raw', + data_type: TYPE_INT32, + dims: [1] + } +] +output [ + { + name: 'charge_norm', + data_type: TYPE_FP32, + dims: [1] + } +] \ No newline at end of file