Parallel HTTP API

Run the Roboflow Inference parallel HTTP server to process inference requests asynchronously for higher throughput and lower latency.

Enterprise feature. This feature is only available to Roboflow Enterprise users. Contact the sales team to learn more about Roboflow Enterprise.

You can run multiple models in parallel with parallel processing, a version of Roboflow Inference that processes inference requests asynchronously.

Inference Parallel supports the same features as Roboflow Inference, except that it does not support core models (CLIP and SAM).

With Inference Parallel, preprocessing, auto batching, inference, and post-processing all run in separate threads to increase server FPS throughput. Separate requests to the same model are batched on the fly as allowed by $MAX_BATCH_SIZE, and response handling then occurs independently. Images are passed via Python's SharedMemory module to maximize throughput.

These changes result in as much as a 76% speedup on one measured workload.

How to run Inference with parallel processing

First, build the parallel server:

./inference/enterprise/parallel/build.sh

Then run the server:

./inference/enterprise/parallel/run.sh

A message appears in the terminal indicating that the server is running and ready for use.

Benchmarks

We evaluated the performance of Inference Parallel on a variety of models from Roboflow Universe, comparing it against Inference Server 0.9.5.rc on the same hardware: a computer with eight cores and one GPU. Instance segmentation metrics were calculated with "mask_decode_mode": "fast" in the request body. Requests were posted concurrently with a parallelism of 1000.

WorkspaceModelModel typeSplit0.9.5.rc FPS0.9.5.parallel FPS
senior-design-project-j9gppnbafootage/3object-detectiontrain30.2 fps44.03 fps
niklas-bommersbach-jyjffdart-scorer/8object-detectiontrain26.6 fps47.0 fps
geonuwater-08xpr/1instance-segmentationvalid4.7 fps6.1 fps
university-of-bradforddetecting-drusen_1/2instance-segmentationtrain6.2 fps7.2 fps
fy-project-y9ecdcataract-detection-viwsu/2classificationtrain48.5 fps65.4 fps
hesunyuplaying-cards-ir0wr/1classificationtrain44.6 fps57.7 fps

Inference with parallel processing enabled achieved higher FPS on every test. On some models the FPS increase was greater than 10 FPS.