Skip to content

DAC-20/submission1134

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dependencies

Software

  • kubernetes 1.14
  • Xilinx SDAccel toolchain (version 2018.3)
  • go 1.10, and kubenetes related packages
  • python 3.7, and prettyTable package

Hardware

  • Xilinx U200 FPGA x6 (or more)
  • FPGA host x86_64 machine x2 (or more)

Directory contents

device_plugin/: this folder contains the modified fpga device plugin based on Xilinx's official device plugin. Note that because of open-source license constriction, we don't erase the Xilinx author information of the original version from the source code.

task_scheduler/: this folder contains the major framework components, such as the task scheduler (balancer & scalar), container manager, etc.

caller/: this folder contains the go script for issuing requests to the task_scheduler to evaluate its performance.

fpga_app/: this folder contains some fpga applications (functions) to be managed and scheduled by our framework.

Usage

Setup

  1. set the related configuration in task_scheduler/pkg/utils/const.go, such as the ip address of the FPGA machines, the master port, etc.
  2. copy the fpga_app/ directory to some consistent path in all the kubernetes FPGA worker machines, then modify the mount path in task_scheduler/sample-client-pod.yaml to your specified path.
  3. run "go build" in the task_sheduler/ and caller/ directory to compile and get the binaries.

Run

  1. go to the device_plugin/ directory and install the device plugin by running "kubectl create -f fpga-device-plugin-daemonset.yml".
  2. go to the task_scheduler/ directory and run "./task_scheduler" for default setting. To get the detailed setting usage description, run "./task_scheduler -h". This binary will initialize our framework and wait for function requests on the master port. Note that this binary won't stop running until it receives signals like SIGUP, SIGTERM or SIGINT, or please run this binary in a seperate terminal session.
  3. go to the caller/ directory and run "./caller" for default setting. To get the detailed setting usage description, run "./caller -h". This binary will issue requests (with specified request-per-second and change speed) to the master port.
  4. send SIGTERM or SIGINT signal to the task_scheduler process started in step 1 to shutdown the framework.

If you want to do more thourough profiling, you can instead go to task_scheduler/ directory and run "./profile.sh" which will automatically take care of the above procedures and do the evaluation continuously.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published