Skip to content

Running

Bart Cox edited this page Sep 14, 2020 · 1 revision

Important before running

  • Make sure that the models are splitted using the ModelSplitter
  • It is advised to enable memory swapping to prevent crashing due to insufficient memory. The combination of different networks can consume a lot of memory depending on the policy.

RunPipeline

This is the default experiment. A static set of networks is submitted to EdgeCaffe and is processed for the given policies (Bulk, DeepEye, Partial, Linear). It is important that the models are split beforehand with the ModelSplitter if not already done.

All the networks are submitted to EdgeCaffe instantly at the beginning and thus put in the pool of waiting tasks. When all the tasks are executed, a network is finished (and its memory deallocated). When all networks are finished, the end-to-end times will be outputed to a csv file.

  • Build: make RunPipeline
  • Usage: ./RunPipeline [outputfile.csv]. The mode can be one of the scheduling policies: linear, bulk, deepeye or partial. The output file argument is optional and can be set to define the name of the output file used to write the profiling data towards. The default value of the output file is output.csv in the analysis folder.

Modelsplitter

A tool used to split caffemodel files in smaller model files.

  • Build: make ModelSplitter
  • Usage: ./ModelSplitter pathToModel1 [pathToModel2] ...
  • Example: ./ModelSplitter ../networks/AgeNet/age_net.caffemodel ../networks/GenderNet/gender_net.caffemodel

ExtendNetworkDescription

A tool used to extend the layer descriptions of the network description files with more accurate information.

  • Build: make ExtendNetworkDescription
  • Usage: ./ExtendNetworkDescription pathToNetworkDir [pathToNetworkDir2] ...
  • Example: ExtendNetworkDescription ../../networks/AgeNet ../../networks/GenderNet

ScheduledPipeline

Provides almost the same functionality as RunPipeline but the implementation is more exposed. Note: It is important that the models are split (With the ModelSplitter) before running this executable.

  • Build: make ScheduledPipeline
  • Usage: ./ScheduledPipeline

Exp_const_arrivals

Almost same example as RunPipeline but it uses a distribution of arrivals instead of submitting everything at the beginning instantly. Note: It is important that the models are split (With the ModelSplitter) before running this executable.

  • Build: make Exp_const_arrivals
  • Usage: ./Exp_const_arrivals [outputfile.csv]
Clone this wiki locally