非常重要的原始参考资料:
链接: triton-inference-server/client github/grpc java
ps:
使用grpc协议的其它项目python/go可以参考git hub目录client/tree/main/src/grpc_generated下的其它项目
其它链接:
(一)克隆Triton Inference Server Common到本地
git clone https://github.com/triton-inference-server/common/ -b r22.03 common-repo
注意:下载合适的分支
(二)克隆Triton Client到本地
git clone https://github.com/triton-inference-server/client.git
(三)使用IDEA打开client
client所在的路径/client/src/grpc_generated/java/library
(四)设置IDEA的maven和setting
settings-》Build,execution,Deployment->build Tools–>Maven设置maven home path和setting file
注意:setting file需要配置依赖项从哪里下载
(五)中common-repo/protobuf/*.proto拷贝到library下src/main/proto/位置
运行mvn compile
这一步主要是编译proto
(六)生成文件
上述文件就是新java工程的依赖项
(一)启动triton-inference-server提供的模型服务
# Step 1: Create the example model repository
git clone -b r24.01 https://github.com/triton-inference-server/server.git
cd server/docs/examples
./fetch_models.sh
# Step 2: Launch triton from the NGC Triton container
docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:24.01-py3 tritonserver --model-repository=/models
去掉 --gpus=1 为cpu版本
(二)启动triton-inference-server提供的java客户端测试
首先需要拷贝第一步的依赖
$ cp -R library/target/generated-sources/protobuf/java/inference examples/src/main/java/inference
$ cp -R library/target/generated-sources/protobuf/grpc-java/inference/*.java examples/src/main/java/inference/
使用IDEA打开路径:/client/src/grpc_generated/java/examples
$ cd examples
$ mvn clean install
$ mvn exec:java -Dexec.mainClass=clients.SimpleJavaClient -Dexec.args=" "
成功的话,会出现
name: "OUTPUT0"
datatype: "INT32"
shape: 1
shape: 16
name: "OUTPUT1"
datatype: "INT32"
shape: 1
shape: 16
(三)自行修改构建成自己的java客户端
参考上述examples,修改为自己工程需要的;另外也要启动自己的server,启动自己server的方法参考
wespeake工程指导
(一)打包jar包(IDEA)
File – 》Projection structure–》Artifacts --> ➕–〉JAR–》From module…–>Main Class(com.bj58.ailab.wpai.userdefined.你的javaClient)–>OK–>OK
点击build–》build Artifacts—〉你刚才的jar–》build
即可在生成目录看到生成的jar包
(二)jar包运行
nohup java -jar 你的jar包名.jar 你的参数 > 你的.log