@@ -31,6 +31,7 @@ EXPECTED_NUM_TESTS="10"
31
31
32
32
SERVER=/opt/tritonserver/bin/tritonserver
33
33
BASE_SERVER_ARGS=" --model-repository=` pwd` /models --log-verbose=1"
34
+ PYTHON_BACKEND_BRANCH=$PYTHON_BACKEND_REPO_TAG
34
35
SERVER_ARGS=$BASE_SERVER_ARGS
35
36
SERVER_LOG=" ./inference_server.log"
36
37
REPO_VERSION=${NVIDIA_TRITON_SERVER_VERSION}
@@ -42,6 +43,34 @@ get_shm_pages() {
42
43
echo ${# shm_pages[@]}
43
44
}
44
45
46
+ install_conda () {
47
+ rm -rf ./miniconda
48
+ file_name=" Miniconda3-py38_4.9.2-Linux-x86_64.sh"
49
+ wget https://repo.anaconda.com/miniconda/$file_name
50
+
51
+ # install miniconda in silent mode
52
+ bash $file_name -p ./miniconda -b
53
+
54
+ # activate conda
55
+ eval " $( ./miniconda/bin/conda shell.bash hook) "
56
+ }
57
+
58
+ create_conda_env () {
59
+ python_version=$1
60
+ env_name=$2
61
+ conda create -n $env_name python=$python_version -y
62
+ conda activate $env_name
63
+ conda install conda-pack -y
64
+ }
65
+
66
+ create_python_backend_stub () {
67
+ rm -rf python_backend
68
+ git clone https://github.com/triton-inference-server/python_backend -b $PYTHON_BACKEND_BRANCH
69
+ (cd python_backend/ && mkdir builddir && cd builddir && \
70
+ cmake -DTRITON_BACKEND_REPO_TAG=$TRITON_BACKEND_REPO_TAG -DTRITON_COMMON_REPO_TAG=$TRITON_COMMON_REPO_TAG -DTRITON_CORE_REPO_TAG=$TRITON_CORE_REPO_TAG ../ && \
71
+ make -j18 triton-python-backend-stub)
72
+ }
73
+
45
74
rm -fr * .log ./models
46
75
47
76
mkdir -p models/identity_fp32/1/
@@ -163,6 +192,7 @@ set -e
163
192
164
193
kill $SERVER_PID
165
194
wait $SERVER_PID
195
+ sleep 4
166
196
167
197
current_num_pages=` get_shm_pages`
168
198
if [ $current_num_pages -ne $prev_num_pages ]; then
@@ -261,9 +291,11 @@ if [ "$SERVER_PID" == "0" ]; then
261
291
cat $SERVER_LOG
262
292
exit 1
263
293
fi
294
+ set -e
264
295
265
296
kill $SERVER_PID
266
297
wait $SERVER_PID
298
+ sleep 5
267
299
268
300
current_num_pages=` get_shm_pages`
269
301
if [ $current_num_pages -ne $prev_num_pages ]; then
@@ -272,9 +304,10 @@ if [ $current_num_pages -ne $prev_num_pages ]; then
272
304
echo -e " \n***\n*** Test Failed. Shared memory pages where not cleaned properly.
273
305
Shared memory pages before starting triton equals to $prev_num_pages
274
306
and shared memory pages after starting triton equals to $current_num_pages \n***"
275
- RET= 1
307
+ exit 1
276
308
fi
277
309
310
+ set +e
278
311
grep " name 'undefined_variable' is not defined" $SERVER_LOG
279
312
280
313
if [ $? -ne 0 ]; then
@@ -284,6 +317,7 @@ if [ $? -ne 0 ]; then
284
317
fi
285
318
set -e
286
319
320
+ set +e
287
321
# Test KIND_GPU
288
322
rm -rf models/
289
323
mkdir -p models/add_sub_gpu/1/
@@ -299,13 +333,15 @@ if [ "$SERVER_PID" == "0" ]; then
299
333
fi
300
334
301
335
if [ $? -ne 0 ]; then
302
- cat $CLIENT_LOG
336
+ cat $SERVER_LOG
303
337
echo -e " \n***\n*** KIND_GPU model test failed \n***"
304
338
RET=1
305
339
fi
340
+ set -e
306
341
307
342
kill $SERVER_PID
308
343
wait $SERVER_PID
344
+ sleep 5
309
345
310
346
current_num_pages=` get_shm_pages`
311
347
if [ $current_num_pages -ne $prev_num_pages ]; then
@@ -314,7 +350,7 @@ if [ $current_num_pages -ne $prev_num_pages ]; then
314
350
echo -e " \n***\n*** Test Failed. Shared memory pages where not cleaned properly.
315
351
Shared memory pages before starting triton equals to $prev_num_pages
316
352
and shared memory pages after starting triton equals to $current_num_pages \n***"
317
- RET= 1
353
+ exit 1
318
354
fi
319
355
320
356
# Test Multi file models
@@ -325,6 +361,7 @@ cp ../python_models/identity_fp32/config.pbtxt ./models/multi_file/
325
361
(cd models/multi_file && \
326
362
sed -i " s/^name:.*/name: \" multi_file\" /" config.pbtxt)
327
363
364
+ set +e
328
365
prev_num_pages=` get_shm_pages`
329
366
run_server
330
367
if [ " $SERVER_PID " == " 0" ]; then
@@ -334,22 +371,25 @@ if [ "$SERVER_PID" == "0" ]; then
334
371
fi
335
372
336
373
if [ $? -ne 0 ]; then
337
- cat $CLIENT_LOG
374
+ cat $SERVER_LOG
338
375
echo -e " \n***\n*** multi-file model test failed \n***"
339
376
RET=1
340
377
fi
341
378
379
+ set +e
342
380
kill $SERVER_PID
343
381
wait $SERVER_PID
382
+ sleep 5
383
+ set -e
344
384
345
385
current_num_pages=` get_shm_pages`
346
386
if [ $current_num_pages -ne $prev_num_pages ]; then
347
- cat $CLIENT_LOG
387
+ cat $SERVER_LOG
348
388
ls /dev/shm
349
389
echo -e " \n***\n*** Test Failed. Shared memory pages where not cleaned properly.
350
390
Shared memory pages before starting triton equals to $prev_num_pages
351
391
and shared memory pages after starting triton equals to $current_num_pages \n***"
352
- RET= 1
392
+ exit 1
353
393
fi
354
394
355
395
# Test environment variable propagation
@@ -367,9 +407,11 @@ if [ "$SERVER_PID" == "0" ]; then
367
407
cat $SERVER_LOG
368
408
exit 1
369
409
fi
410
+ set +e
370
411
371
412
kill $SERVER_PID
372
413
wait $SERVER_PID
414
+ sleep 5
373
415
374
416
current_num_pages=` get_shm_pages`
375
417
if [ $current_num_pages -ne $prev_num_pages ]; then
@@ -378,7 +420,7 @@ if [ $current_num_pages -ne $prev_num_pages ]; then
378
420
echo -e " \n***\n*** Test Failed. Shared memory pages where not cleaned properly.
379
421
Shared memory pages before starting triton equals to $prev_num_pages
380
422
and shared memory pages after starting triton equals to $current_num_pages \n***"
381
- RET= 1
423
+ exit 1
382
424
fi
383
425
384
426
rm -fr ./models
@@ -405,14 +447,84 @@ $page_size."
405
447
RET=1
406
448
fi
407
449
done
450
+ set +e
408
451
409
452
kill $SERVER_PID
410
453
wait $SERVER_PID
454
+ sleep 5
455
+
456
+ rm -fr ./models
457
+ rm -rf * .tar.gz
458
+ apt update && apt install software-properties-common rapidjson-dev -y
459
+ wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2> /dev/null | \
460
+ gpg --dearmor - | \
461
+ tee /etc/apt/trusted.gpg.d/kitware.gpg > /dev/null && \
462
+ apt-add-repository ' deb https://apt.kitware.com/ubuntu/ focal main' && \
463
+ apt-get update && \
464
+ apt-get install -y --no-install-recommends \
465
+ cmake-data=3.18.4-0kitware1ubuntu20.04.1 cmake=3.18.4-0kitware1ubuntu20.04.1
466
+ install_conda
467
+
468
+ # Create a model with python 3.9 version
469
+ create_conda_env " 3.9" " python-3-9"
470
+ conda install numpy=1.20.1 -y
471
+ create_python_backend_stub
472
+ conda-pack -o python3.9.tar.gz
473
+ path_to_conda_pack=` pwd` /python3.9.tar.gz
474
+ mkdir -p models/python_3_9/1/
475
+ cp ../python_models/python_version/config.pbtxt ./models/python_3_9
476
+ (cd models/python_3_9 && \
477
+ sed -i " s/^name:.*/name: \" python_3_9\" /" config.pbtxt && \
478
+ echo " parameters: {key: \" EXECUTION_ENV_PATH\" , value: {string_value: \" $path_to_conda_pack \" }}" >> config.pbtxt)
479
+ cp ../python_models/python_version/model.py ./models/python_3_9/1/
480
+ cp python_backend/builddir/triton_python_backend_stub ./models/python_3_9
481
+ conda deactivate
482
+
483
+ # Create a model with python 3.6 version
484
+ create_conda_env " 3.6" " python-3-6"
485
+ conda install numpy=1.18.1 -y
486
+ conda-pack -o python3.6.tar.gz
487
+ path_to_conda_pack=` pwd` /python3.6.tar.gz
488
+ create_python_backend_stub
489
+ mkdir -p models/python_3_6/1/
490
+ cp ../python_models/python_version/config.pbtxt ./models/python_3_6
491
+ (cd models/python_3_6 && \
492
+ sed -i " s/^name:.*/name: \" python_3_6\" /" config.pbtxt && \
493
+ echo " parameters: {key: \" EXECUTION_ENV_PATH\" , value: {string_value: \" $path_to_conda_pack \" }}" >> config.pbtxt)
494
+ cp ../python_models/python_version/model.py ./models/python_3_6/1/
495
+ cp python_backend/builddir/triton_python_backend_stub ./models/python_3_6
496
+
497
+ run_server
498
+ if [ " $SERVER_PID " == " 0" ]; then
499
+ echo -e " \n***\n*** Failed to start $SERVER \n***"
500
+ cat $SERVER_LOG
501
+ exit 1
502
+ fi
503
+ set +e
504
+
505
+ kill $SERVER_PID
506
+ wait $SERVER_PID
507
+ sleep 5
508
+
509
+ grep " Python version is 3.6 and NumPy version is 1.18.1" $SERVER_LOG
510
+ if [ $? -ne 0 ]; then
511
+ cat $SERVER_LOG
512
+ echo -e " \n***\n*** Python 3.6 and NumPy 1.18.1 was not found in Triton logs. \n***"
513
+ RET=1
514
+ fi
515
+
516
+ grep " Python version is 3.9 and NumPy version is 1.20.1" $SERVER_LOG
517
+ if [ $? -ne 0 ]; then
518
+ cat $SERVER_LOG
519
+ echo -e " \n***\n*** Python 3.9 and NumPy 1.20.1 was not found in Triton logs. \n***"
520
+ RET=1
521
+ fi
522
+ set -e
411
523
412
524
if [ $RET -eq 0 ]; then
413
525
echo -e " \n***\n*** Test Passed\n***"
414
526
else
415
- cat $CLIENT_LOG
527
+ cat $SERVER_LOG
416
528
echo -e " \n***\n*** Test FAILED\n***"
417
529
fi
418
530
0 commit comments