tritonserver学习之八:redis_caches实践

2024-02-28 01:36

本文主要是介绍tritonserver学习之八:redis_caches实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tritonserver学习之一:triton使用流程

tritonserver学习之二:tritonserver编译 

tritonserver学习之三:tritonserver运行流程

tritonserver学习之四:命令行解析

tritonserver学习之五:backend实现机制

tritonserver学习之六:自定义c++、python custom backend实践

tritonserver学习之七:cache管理器

1、环境说明

机器:阿里云ecs服务器

redis:安装到本机,直接百度一下,网上教程很多。

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.listsudo apt-get update
sudo apt-get install redis

cache:使用本机redis,在triton镜像中访问宿主机redis。

2、docker镜像访问宿主机redis设置

2.1 在宿主机执行命令,查看docker ip地址:

上图中,docker的地址为:172.17.0.1,这个地址很重要,在配置访问redis时会使用到。

2.2 修改宿主机redis配置

redis配置所在文件路径:/etc/redis/redis.conf

要修改的地方:

bind 127.0.0.1 ::1 --------> bind 127.0.0.1 172.17.0.1

protected-mode yes --------> protected-mode no

取消屏蔽:requirepass food,设置redis密码,【food】即为redis的密码,按照自己喜欢的设置即可。

设置完成后,重启redis:

service redis-server restart

3、模型配置

      用过triton的同学都知道,triton中,每个模型都对应一个配置文件,这个配置文件描述了模型本身的属性, 比如模型的平台,是pytorch模型还是TensorFlow模型还是自定义的模型、模型输入、输出信息,batch信息等等,缓存的设置,是支持在模型的维度上去设置的,某个模型使用cache,某个模型不实用cache,使能cache的设置参数如下:

response_cache{enable:true
}

比如,tritonserver代码库中官方示例模型:densenet_onnx,开启这个模型的cache功能,该模型的配置如下(配置文件为:config.pbtxt):

 

4、启动triton

4.1 启动tritonserver镜像

sudo docker run --rm -p8000:8000 -p8001:8001 -p8002:8002 -it -v /root/tritonserver/server/docs/examples/model_repository:/models nvcr.io/nvidia/tritonserver:23.12-py3

4.2 启动triton

tritonserver --model-repository=/models --log-verbose=1 --cache-config=redis,host=172.17.0.1 --cache-config redis,port=6379 --cache-config redis,password="food"

此命令行中--log-verbose=1参数,设置该参数,日志打印更全,redis配置命令--cache-config是一个可变的配置命令,可以重复设置多个参数,官方的说明如下(GitHub - triton-inference-server/redis_cache: TRITONCACHE implementation of a Redis cache):

triton启动后,可以看到缓存已经被enable了:

 

5、执行推理

执行命令:

sudo docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:23.12-py3-sdk

镜像启动后,运行以下命令,请求 densenet_onnx模型执行推理:

/workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg

 

 6、查看redis缓存

发出推理请求后,推理结果就会被缓存到redis中:

该key的存储类型为hash表,内容如下:

127.0.0.1:6379> type 16176101894200574872
hash
127.0.0.1:6379> hgetall 16176101894200574872
1) "0:t"
2) "0"
3) "0:b"
4) "\x01\x00\x00\x00\xc5\x0f\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00fc6_1\x04\x00\x00\x00FP32\b\x00\x00\x00\xe8\x03\x00\x00\x00\x00\x00\x00\xa0\x0f\x00\x00\x00\x00\x00\x00\xe3~,\xc0\xfd\x05\xb0\xbfg\x10\xfe\xbf([\x97\xbf\xbd\x9f\xe6\xbf\x9ddx\xbfc5\xc2\xbf\x91\xc8\xd2\xbfn\xd0\x1e\xc0\xd6T\x98<\xf1\x9c\xb3\xbf\x13\xef0\xbf\x03\xe9H>s\x89\x9c>\x9a\x97\xcc>\x0eR\xfe\xbcu\xd8\xd3\xbf6/\xcf=U\x0e\x14>>\x01o\xbf\\\xe4\x89\xbfMG\x03\xc0\xc6\x06\xdb\xbf\x8b\x00\xb1\xbe!n;\xc0\xc2\xf5\xf1\xbf\xb2\xcf\xbc\xbf\x85\xaa\x00\xc0\x883\xe5\xbe\xa1\xff\xbe\xbf\x1c\xd9'\xc0\x98x\x12>\xf3\x86=>$\xbb\xfa\xbf\xaf\xb7\xb6\xbf\xc9\xc0\xbc\xbf\a\x03\x83>\xdd\xc6\xa9\xbf\xc2\xab8\xbf\xbd\x98\xc0\xbf\x82\xee\xc0>\xbc\a\xd1\xbfeW\x93\xbf_\x7f\x0b\xc0\x7f\x97\x11\xbf#\x89O\xbe\xb6\xf2\xc5>GS\xde\xbf\xde\x01;\xc0\xa8\x04z\xbf&\x87P>\x8a\xfd\x17\xc0\x86\xba\x8d>\xd7\x11r>]\xa2\xe3>\xb4H\x9d\xbf\xc1e\x12\xbeED\x1e\xc0\x0b\x95\xd5\xbf\xeb\x17~?:c\xa1\xbd\xfe\xe1G\xbfF\b+\xc0\"\x0f\xc6\xbf\xef\x9cf\xbf\x86\xb9j=\x03CI?\xb9:\xec\xbe\x8dG\xc3\xbe\xa1\xcfa\xbf\x96\xf7\xf9\xbf\xd2P\x86\xbfI/\x04\xc0\xd0;\x99\xbf\xe9\xe6.\xc0\x8b\x1e\x19?PZ\x94>\xd7m\x7f?\x1d-\a@\xe2\xd0\xa2\xbeL\x91b\xbf\xb5\xe4[\xc0\xfc/\xbc\xbf\xc6\x1dU\xc0P,@\xc0\x80\xa2F\xbf\x13\x9a\xcf\xbf4P\xb6?E\x8f\x94\xbf\x96\xd1\xa9\xbfe\xb9\x99?\xf2M\x00\xc0E\xaaB\xbf\xf6J>\xbf\xb3\xe2o=)02\xc0\xaa\xf5\x00\xbf\xf3;,\xc0\x84\xc6\xfb\xbfs\x8d\xb2\xbf\xb2\x99\xbd\xbfT\xc4\xe0\xbf\x0e\xad\xfd\xbfn\xc0\xa1\xbeE\x849\xc0:7\x13\xc0O^\xa1\xbe`\xf1\xe9\xbf2n\xeb\xbe&#>\xbf\x0e\xa6\x06\xbf\xd1T\xa4?\x8c\xdb\xed? \x1d\xab\xbf\xf6\x02\xa0\xbf@\x85(\xc0\x83l\xa5\xbf\x93Y\x93\xbe>\xe7\xa5?>\xecS=\xe2\xd3\xdc\xbf\xc3\x01\x80?\xdf\x96\xd9?C4\x8a\xbe\x06\x97\x98?\x8d\nC<sw\x15\xbf%\xef\x18\xc0zwv\xc0D\xe63\xc0M\x9e\x00\xc0\xd3\xc3\xb6\xbf\x91@\x95\xbf\x1d\xf6\r\xc0\xa1\x1e#\xbf\xa7\xa6+\xc0\xa9o\x1e\xc0\xafn\x1f\xbf\x14\xa8\xb4\xbff%\\\xc0Xf\x0c\xc08\xd8\xae\xbf\x0bg\x1b\xc0\x11\aM\xc0\x19Gj\xc0\x0e\x97\xfa>^d\xbd\xbf\xd3\xf7\xf4\xbf\bz\x03\xc0\xab9\xf4\xbfLH\x9c>W\x11\xa2=\xae\xd2\x86\xbf@B^\xbf\xc9\xf0>\xbe\x18\xb7\xe4\xbe\xe5+\xec\xbeb\x93\r\xbf\x15\xd4\x17\xc0\xf6\x86~>N\x97\xf5\xbf\x86\xf7\xc1\xbb\x01\x0b\x1a>\x88\xc1\xdb\xbeZ\x9d\xf0\xbe\xd7U\x94\xbf`8\x8b\xbfv\xb0\xef\xbf\xba\x01\x05\xbf\xc2\x0f#\xc0\xf9(\x17\xc0L{4?\xf1&H?\xf6\xd8\x92\xbf\xaa\xe1}\xbf\xe5T\xdf\xbf\xe03h\xbf|\x80\xbe\xbf\xd6\xc5)?\xb8\xae\x9b\xbf\r\xb1\x18\xc08\xe95\xbf7\xd9\x94\xbfn\xdfU?\xc1~4>\x114\xb4\xbe^f\x89\xbd\xdce\x99\xbf\x8cL1\xbf)D\x82\xbfL\xf5\x06?\xec]$?\xad:\xbd\xbf\xf9!E\xbf\x03\xdc\x9e\xbf\xa0\xb9\x87\xbd\x1c\xb7\xc0=\xd7\x85\xad\xbd\xa4\xfb\x01\xbf\x88+\xc8>6\xfe\x8f\xbf\xa7\xd4\xd1\xbf$\xb7!>\xec[\x97>\x9f\xbb,\xbf\x8a\x8e\xc1\xbfR\"\xed\xbfR\xfd\r\xc0N\x86\x1e\xbeg\xd21\xbf\xd9\\\x9d\xbf\x9e\xf5\xfa>2\xa8\x94\xbfl\xe0\xc8\xbf\x01\xc5$\xc0\xb0\xc6\xa9\xbf\xd8\x17\x12\xc0O\x15\xd5\xbf8\x96\xd3\xbf\x91\xc13\xbf\x98V\x17\xbf\xb4\b\"\xbf\x01W\xe3\xbfv!\xe7>\xfc\xd9o\xbfH9\xce\xbf\x94\xb4Q\xbf2g\x1a\xbf\x9d\x9a\xe1\xbf\xaf\x97\xae\xbf7\x9c>\xbe\xd2\xa5e>\xa78\xfb\xbe5\x04\xc1\xbe}\xe8\x97\xbf\x8d\xe4\xb8\xbf6\x89\x85\xbfp\x1e~\xbf\xda0\xb2\xbf\xc5\xff\x9a\xbfD\x9d\xa9=\xae\xe5U\xbd<6,\xbf\x9f\x92\xfb\xbe\xbb\x1c\xd3\xbf\xa19&\xbf\x00\x92\x9e\xbfJ\xa0x\xbf\xb8\xa5\x06>\x1e\b\xce?-C\xd9\xbes\xc1[\xbf\xd8\xf3\xd4\xbf\x0fK\xe8<\"\x7f\xfe>\x94\x12<\xc0\xdb_\x19\xbf\xfb\xcb\xfd\xbf\xb1\x85J?]\x14\x01?\xa4\xa0P;\x1d\xdf\xa8\xbfKB\t\xbf\n\xf3\x95>@\xb0\x8a\xbf\a\xd6\x92>o\xf3\xae\xbe=\x97\xa1\xbf\xa1\xea\xac\xbf_\x86\xae\xbfa+\x0e\xc0\xcd\x17\x84\xc0\xaa\xed\x11\xc0\x9f\xda0\xbf\x94\xb3\x82\xc0=n\x11\xc0\x0b~\xa1\xbf\x9d)@\xc0\x0b\x11r\xc0\x0e\x0e\x1e\xc0\xc3\xbb\x18\xc0\xc6\xf0\x84?\x000\x04>\x0f\xba1\xbe\x1e\x10\xa9\xbf[\x17I?\x05\x064\xc0o\n\x16\xc0\x15\xb9X\xc0[\x8a4\xc0\xd6Z\x00\xc0\xda\x06&\xc0\xc5=\x03\xc0a\x87\r\xc0\x16\x82j\xbft\x94\x9c\xbf \xa1\xc4\xbe'\xa0\x95\xbew\x8c\xef\xbf\xd1[\xaa\xbf\xcfDZ>M\x966\xbf\xbe\xd5\x1e>.&6>r\xd9\xdb\xbf]{\xb4\xbf\x0cg\x83?\x8d\x96}\xbf}?\xa9\xbf\x1af\x88\xbfD\xf1\xdf?\xe1*\xe8\xbf\x99=\x0b\xbf\xdd\x1b\x87\xbe\x87\xab\xde>\xbdx\x16\xc0\xf5l\x10\xc0\xab\x1e\x0c\xc0Fw\x86\xbf'\x91e>\x0eqt>N\xd0@\xc0\xf8\xe7\xfc\xbf\xab\xbc\x06\xc0\xd1\xde\b\xc0\xea\x8e\xfc\xbf6\x14\x05\xc0\xf2\xb2\x82\xbf%\xcd\xc3>\x8b\xedl\xbe\xba\x1c\x9e\xbf\xf5\xf2J\xc0\xc6\xd9\x80\xbf\xb6L_?m\xa6\xbb\xbf\x19\xffa\xbf\xfbO\xf6\xbf\xf9\xffe=@\xb3\x9e?\xe2\xa1\x1b\xc0\x86\xe5\x06\xc0\xe1\xbb\xe1\xbf&g\x05\xc0\xf3\xf6\xd9\xbf\xa0d\x9d\xbf\x94\x90k\xbe\xf0\xad\x8d\xbf2\xce\xd1\xbf\xf4A\xa3\xbf\x8c\xe8\x12\xc0m\xc4e\xc0t\xc8\x8d\xc0\x85\x90w\xc0\xc2[>\xc0;\x15\x7f\xbe\xcd\x12\n\xc0_\xb3\x15@5?\x12\xbe_N\x83?8\x1d\t@\x1d\x13\xa3\xbe\xc6d\x89?\x17\xc6\x05?\xeeb\x11\xc0\xb8\xbb\xaf\xbf\xe7\x86n\xc0?\xdb\x10\xc0AC\r\xbf&\xd4\x03\xc0\x84=\x04\xc0\xec\xeb\xfd\xbfo\xa1\xff\xbfZ/\xaf\xbf\x9d\b#\xbf\x944\xc1\xbf\x9c\x0e\xeb\xbf~\xe0\xfe\xbf\xa8*}\xbf\xab\xbe\xff\xbf\xc6\x8b\xf0\xbf\x8b\x1d\x8a\xbf\xb9\xe8\r\xc0\xa8\x0e|\xbf0\x8b\xa1\xbf\xf6\xc0\xe5\xbf\x1fA\r\xc0\xdd\xd2\x84\xbf\xc7e\n\xbfP \x15\xc0'\x9d6\xc0Q\xf5\x12\xc0\xba\x87\x9e\xbf\x9b\xe0\xde\xbf\xfb\xd4\x04\xc0k\x81\xb3\xbfF\x80\x8d\xbfO8J\xc0\xbf\xad\xcc\xbf`\xb2\xac>\x02\xa0<\xbf\xe1\xb7\xbf\xbf\x14}\x9b?^\x96\x1a@<,\x16\xc0\x93\x14\xd8\xbff\"\x12\xbf\x12C\x0b\xc0\xd8\xeb\xaa\xbf\xab\xaf\x93\xbf\xb8&\xf4?_\xc6I\xc0\x04\xf3\x93>\xd0ow@\xcf\xb0\xe3\xbf\x19\xbdO?b\xaa%?\x17Y\xf8\xbe\xa0\xc4\xa2>\xa1D\xe9?\xeb\rv?@\x17\xd5\xbf\xa0\xaf\xd5?\xa0K\xc1?]\x1es\xbf\x13u&\xbf\xa7,\x1f\xc0Sx\x87?i`\x96@W\xffI\xbf\xf4\xbe3?\xdc\xe6\x1d\xbf\xf8\xe9\n\xbf\xc1\xd9\xfd?\x8f\xfcp\xbf\x91\x1a\b?\x88\xd42@\xe3\xca\xe3\xbf\x95\x92\xd0\xbf\x89q\tA4\x9a\xeb?\xb9\x1e\x82@\xe56\xe5@_\xd4\x8c\xbe\x93\x86\x97\xbe\xe5\x85\x00\xc0\xaa2\x17\xbf\xbf\x1e\xc0?\x055\xa9@\x1b\xd7s\xbfi\a!\xc0\x98\x85\xf2\xbf{G\xb7\xbe|\xba/\xbf_\xe5\xc0\xbe\x85r\x97\xbf!\xc1l@\xc9\xf8F\xbf\x05\xecG@\xaa\xf0\xe3\xbe\x1aa_?\xc8A\xe4\xbbjH\x03\xbf\xf0\xbem;\xec\x8c\x99@\xcc\x1b\x83@-\xe3\x80\xbe\xe18+\xbfK\xe3\x99\xbf\x1c\x8b\a\xc0\xf3M\x87@NF\xc0@AQ\xef>\xc1\xc8\xfd\xbf\xe3\x8eZ@\xb0hT\xbf5\x97\x15>\xbaF(\xc0L\xde\xf4\xbe\x14\xc3\xcb>\x8f\xed\x10\xbe\xf9\x90\x02\xc0CV@?S`\x00@\xe7\xc9}\xbf0\x84\xec\xbf\x84\x86\x17@\xfc~I=d`n@\xef0\xfe?\n\x95\xb9\xbe\x858\x00\xc0.\xbf\xcc\xbf\xed\x15\xb4\xbf\xd8\xcfj\xbf\xe0\xfa0?\b\xf2k?\xc4\xe7\xd3\xbf\x14\x006\xc0M\xde\xe8>\x14\x0c(@\xa0Z\xe6\xbf\x8d\xf7\x15\xc0\xc8&\xe0?\xd1\xf5\x84@\xd0\x97uA\\\xcc&A\xdf\xae\xa1?\t\x9eY?\xf9\xc89@\x1c5C\xbdx.\x04?\xf0\xc9@\xc0W\x03?@y\xf0\xc1>[\xa2@?\xbe\n\x16@*|\x1b\xbf\xe14\x91\xbe\x16w\xb6?\xb2\xb6\x01\xbf(6\x1e\xbf>\xf4J@\n\xc2\xfa>f\x0e\x0b@\x14B\xca\xbfa\x16\xf7\xbfS\xe6\x8f?f\xeb\xf3?\xa8\x1eP@\xfea\xfd\xbe\xfc\x14\xa0@)<\x1b@%\a\x03@\xf5\xf8\x83>\xff;\xad\xbe\xd1\xd3\xc3>\t\xc3\xbd\xbc\x8b\xca\xd8\xbf\xcf\xa4\xc1\xbf(8\x02@\\\x8f\x14\xbf\xae\xf4\x14@\xb7ys?\xbe\xc4$@\x11\xc7\x17@5\xbc,?\xce\"\x9f?\xbd\xc6r\xc0\xd8S\xc6\xbe\xc6\x05'\xbf<\xdb\x06A\xfc\xf7\x91@da\x9b\xbeP!\xcf\xbe\xd4\xedv\xbd\xcb\x16-\xc0r\xf3\xa0>\x1c\xdb\xa0\xbf\x81\x8ae>7w\x0f=\xba\xf3\xd5\xbfM\x19a\xbd\xfa\x83\x88\xbfy\x949@,\xa5I\xc0xG\x92\xbfX\x91\x92\xbdr\x1a\x1d@\xd7\r\xac\xbf\xd6\xecf\xbf\x05\xb7\xd3>\xa18\xf9\xbe\xfc\xde\xde@\b@\x18\xbf\x89\x99\x0b@_\x93\x11\xbf\xc6\x84Y\xc0l\x19s\xbe\xbc\xd6\x83>\xa3\xf8E\xbe&{\xc2\xbf\xba\xc1\xdd\xbf\xf8{\x82<\x8b\x87\xb1\xbf!\xf7\x0f@\xec\x0cQ@\xb6G]\xbf+\xea\x00@W\xc7\xc1?\xf2\x95\x80?j\xe6\x95?\xa0\x82\xaa\xbd\xf0\x1b!@\xdf\xccB?\x8d..>\xb8>\r\xc0\xa8B\xd0\xbdn\x1a\xdc\xbe\xa4\"\xd1?\xa4n\x93?\xd6\\U@:\x97&\xbf3\xde~\xbe\x81/|\xc08^p@4\x98\x8f@\xedp|\xbeu\xfcS\xbe\x97<U\xbf\xbb\x1a\x01\xbfT`\x91?\xfe:O?^\x9a^\xc0\xfa\xbd\x95?\x93\xc6\xee\xbf\xafs\x06@t\x93\x16@\x91\xb9\xa0?|]\xa1@\x9bS\x8c@\x915\x8b?\x9f\xf5z\xbf\x0b\xaa\xae@_\x1d\x12@a\xe8\x02?\x1f(\x03\xc0dl\x84@\x0b\x93\xc1\xbf\xe2\xea\xf3>Q#5@\xf3*\"\xbf\xd4\x91\x8c@\x15\xa8\x8a@\x05\xa5\xa1@\xfa\xa0\x83\xc0\x99\xc46@\x93\"\x00>\x02\xb8\x1b\xbf\xc4\x12\xb0>n\xb4\x85\xbf\xd4\t_\xc06\xcei?\xd9m\xda>\xcc\xda\x9a?/\xce\x97?E\xdd\x13\xc0\x1d\x0bO?\xef\x80\nA\x1ev\x12@\xd2\xc8K?C\\V@J\x1c\xc7?\x98\x1c{\xbe\x827K@\xb8\xb0\xab\xbeT\a\x99\xbf\xa8\x8c\a\xc096\xf8\xbf\\x\xcd?\xa0V\xb5@v\x84h\xc0\xa6\x88\xf2\xbf\xda\x83\x8d@\xf67*\xc0\x9bh\x99?\xb1!\xd6\xbf\\\xd3\xac@\x83_\x15?\xc2\xd6\x83\xc0\xc7\xf87\xc04\xbc\xa5\xbf\xfc\xc2\x84\xbf\x18SD\xc0\xbc\x83\x8b@\xf9QQ?H\x9c\x92\xc0\xa8g!\xbf\xfb\xd2\x86\xbfi\x85\x1f@+<\x0c@n\x04\x80@\xb7\xadF@\x9e-\xe6\xbe\x0f\xee\xbb?o\xbd\xcc?\"\xcf\xa1\xbd#?\x86@!\x9ez\xbf\xcf\xe9\xdc>/6\x01\xc0\xcedD\xc0\xf8\xb6\t\xbe!\t0@+\x8et?BZE\xc0\xd3s\xb9?\x10\x05\x19@Z\xc8+\xc0c\xd9\x01\xbf\x86\xa8\x8b?\xb4`c@\x80=6\xbf\xf1~%\xbd\xd1\xe6\xe4\xbfY\xcfS\xbe\xf6\xe8\x9a\xbf\xa0W\xae\xbf\x0b\x04\x90\xbd\x1c\x9e\x19@\xcc'\xc8\xbd\x8c\xbdh@\xf7%]@\xfe\x13s?X\xc3\x9e?\x88\xee?@:`\xac\xbfi\xd3_\xbf\x01I{\xbf\x88\xb5B?\xd0\x9f\x12?[,C@\x87\xf3!\xbf\x1bv^@\xe7^^\xbf8\xd6<\xbfE\xda A\xd5\x01\xa4\xbf\xd8\n#?\x175\x94>3\xfa0@\xee\xf7\x82\xbf\xb6\xce\x16@2\xa0\x19@\x1c\x87\x87?\xb3\xd2\x9f\xbf=\x8f\x14\xc0\xbb8p?\xc1\xbe\x89@\xb8\xc9\x9f@\xc6\xfe\x91@\x03\xfc\x80?\xc7x+\xc0`\x03*?\xad4f?\xb5\x98\xb9\xbff\xdbj@\x9fS\xb0@@\xa8\x83?\x16\xe7\x92>\xc7\x87\xe5?\x1aV\xaf\xbf\x0f\xe6\xb5\xbf\x0580?\b?\xde?\xe0\xc6|@\x0e\xd4\xca\xbfZ\xd4\x18@\"\\\x0e\xc0\rG\xd8?)\x01\x91@\x89\x11!?\xad\xe6\x9a@\xd8y\x0b?D4\x14\xbf\xbe\xc0\xa5>\x17\xcb\x9e=Q\xac\x9d\xbf\xbe\x8aM@T\xb5M\xbf\b\x18\x13@\xef\xe3\x9f?\x0b\x91\x1a\xbe\x1f\x82\x17@\xef\x90\xd1@\xfb\x90\xdc?\xad\xaaz\xbfM*\xe3?\x86\xcdK\xbfx\xb4(@\x91[\xa4\xbf\"\xb1\xb3?\x19\xe2\x1a>3\xb7\x89?\xafyo\xbe\xe5X\x15@\xff\xb8G\xbcA\xaa\xe3>\x0c\r\x94\xbf\x92\x17q\xbe\xf9%\xa3?\x9e[\x9f\xbeH\xb3;\xbf\xee\xd7\x92=\x84M\x85\xbc\x88V @\xbf\xc3Q?\xd3C\xcd\xbe\xab:\x8f\xbe0=\xa6\xbe>w\xac>\x1e\xbc\x17\xc0\xeb)\xe7>\"\xf9R\xc0k\x17\xf9\xbf\xde\x14\x88@\xfd\xe0\x05\xc0\x15L\xb0\xbe\xecC\x1d>\xbaq\xde?\xf8\xe1\xdf@\xa0\x04\x83?\xd0r{>\xf3\xb8\xff\xbdY\xdc\x02@\x14\x8b\xa2\xbf\xbc\xfc\x8f\xbf\xaa\x1f[\xbe\x12\xd5\xc1\xbf\x18\b\x0b@x\xec\x00<\x94Z\x80\xc0]\n\r\xc0\x11\\\xc3>\x00\xba\x86?\xd2\"\x15?c,\x9e\xbf\x90\xa9\xb9?J\xd5\xe0?;\xab\x88@\x94M\x19\xc0d\x0bt\xbf\x17Og\xbf\xc2h~\xc0\xcd\xebW\xbe`\x02\xa1>9W\xc9\xbf]\x16U@\x96\"<@\xc9\xcf^@\xa8<\xb0=\xf9i\xb7?\xce\x90c\xbf\xfe\x9b\x97=\x80*\xc9\xbc\x04\xe1Q@G\xc6\x85?\xf1\xfa+@]\x04\xc9\xbfQw\x9b?o\x8b\x11A63\x93?k\xef\xc6>M\xfbn@-\x17C\xc0\xc9\xce\xb5\xbfi\x00y@\xe6)\x17\xc0O<\x10\xc0lM\x97\xbf\x91\xbb]@\xc6\xb1\x03\xbe\xed\xa0\x1d@\x06\\:@Z,\x84\xbft\xc2\x11\xbf\\\x98\xec\xbf\xb5W\x97\xbf\xd4\x05\x8b\xbf{G\xe2@\x13\x9a%\xbfb\xe85\xbf\x8c\xed\x18\xc0\xc8\bg@\b8\xfa\xbfm\xb1\x88\xc0\x92\x02\xbb>5<\r@\xbf8\xbf?\xcb\xd7\x03?\xba\x14\xf4>\xfep>\xc0\"\xb3t\xbf\xd4\x9b\x02?\xc6@\xf0@\xa9c\x0b\xbf170\xbe\xe0\xd9/=\xaf\x0f.\xc0\xa0\xdb\x9a\xbfw\xff\x97?\xb8\"\n\xbf\xb2c\x83?\xddG\x80?\t\x1a >\x8d\xd3u\xbf\x90\x9f\xe4\xbf\xae\x0b\x82@I\xfa\x9c?\xef[\xa3@\x96\xb4\x1aA\x10p\x0f\xbe\"\xc8\rA\x88\xd4B@\xc7\xba\xb3?;-\x14\xbfE\xd7\xf5\xbd\x8d\x0f\x89\xbf\x9f\xed_@\xe7x\xd0\xbfkNo?\x17\xb6\x9d@_\xb4$@\xac$\x05\xc0_\xd9\xaf\xbf\x02I\x9b\xbfIF\x0e\xc0)\x93\xa2=g\xaa\x01\xbf\xce\x04b@4f\x03?\xf8\xba`?\x1b4\x1f@G\t\x15@\x0f\x98;@cc\xa3?\b\xea\xd3@}\x89t?\x9d\xa0\x16@\xd9\x1e\x11@\xcc\xc8\x1e@\xc8L\xc7?\xcb\x06\x01@-\x97\x14@0Q\x88\xbf\x95\x016@\xc4\"\x9d?K\x14\xeb?^\"\x16@\x98\x81\xcf?F\x05*\xbc\x97\xd4\xe5>\xd3\xaf\xbf?\xfa\x8a\x1a@\xc5W\x95?\x06\x85\xb9?\x1c,$@\x17\x971\xc0\xc9\xe3\xc8\xbf\xf5\xb6!@\x99\xbd;@zM\xf3?\x9c\xdf\x1b@qF\"@\xf1\x06\x9b>@\x8ar@oW\x92\xbe\xd5w/?\xe8\xde\x0f?\xc0Z\xf2\xbe\xef\xc1\x1f@\x8b\xbb\xd1@\xb5\x1b!@I\xf8y?\xa40\x96\xbf-\xd2K?*g+@ST\xb9@\xbc\xea%A\xb1\xa3SA\x163\xd6@\xa3\x96\xe6\xbew\xe44?\xa3\xb3J?L\xce\x8f\xbf\xf3\x0c!\xc0]\x81\x89>\xda\xd6Y>\xa1}.?B!/\xbf\x06\x9c\x1d\xc0EB=\xc0\x9a\xbd\xba>\x9d\xef\x13?\xe6\xfe\xd7>\xc3bV\xbf+\xe9\x0b?\x12\x00\x86\xc0x\x939?\xb9u\xdb?\xfd-\b\xc0FF\x1e@$j\xc3\xbf\xd3\xe3\x87\xc0\xfbQ\x13\xc0IbK\xc0sQ\x87\xbf\xa3\xc8\xf1>\x94\x9a\xb3\xbf{\xdf\x01\xbf\xac\xa5\x89@"
5) "0:i"
6) "0"
7) "0:s"
8) "4049"
127.0.0.1:6379>

这个key中,一共存储了4个field,分别为:

0:t
0:b
0:i
0:s

这四个field的生成逻辑,可以参考如下代码:

std::string
getFieldName(size_t bufferNumber, fieldType fieldType)
{switch (fieldType) {case buffer:return std::to_string(bufferNumber) + ":b";case bufferSize:return std::to_string(bufferNumber) + ":s";case memoryType:return std::to_string(bufferNumber) + ":t";case memoryTypeId:return std::to_string(bufferNumber) + ":i";}return "";
}

模型的推理结果被缓存后,下一次,同样的推理请求,就会命中缓存,不会再次执行推理,这样不仅降低了请求的耗时,也节省了算力。 

这篇关于tritonserver学习之八:redis_caches实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754113

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个