Giter Club home page Giter Club logo

k80-linux-cooling's Introduction

Universal K80 Cooling

This is a Linux cooling control software, which uses an Arduino Uno, PWM fan, and Python 3. It was designed for use with a Tesla K80 (a datacenter GPU without fans), but should work with any NVIDIA GPU.

This will determine the speed your fan (connected to your Arduino) should run at based on the highest temperature between your GPUs, then will send that speed to your Arduino.

Make sure to set the port in the .py file you use!

How to use

  1. Install dependencies using pip install -r requirements.txt
  2. Connect the Arduino to the fan according to this diagram. Keep in mind that if you're powering the fan through the arduino, as is the case here, the fan can only be up to 1 amp. PWM connected to pin 9, TACH not connected
  3. Set the port variable
    1. Instructions for finding the port are in the Python code.
  4. Create a script to run this every 10 seconds
    1. Use a text editor to create a script called `every5secs.sh, and add the code below.
    2. Make a note of where you saved the script, and remember to change /path/to/tx_cron.py
# This runs the tx_cron.py every 10 seconds
i=0

while [ $i -lt 6 ]; do # 6 ten-second intervals in 1 minute
  python3 /path/to/tx_cron.py & #run your command
  sleep 10
  i=$(( i + 1 ))
done
  1. Create a cron job
    1. Run crontab -e
    2. Add this line to the bottom of the file: * * * * * python3 /path/to/every5secs.sh
      1. Remember to change the path to your script!
    3. Save and exit with Escape, :wq, Enter

My setup

  • I use this 3D-printed fan adapter for my Tesla K80; I highly recommend it.
    • I also remixed it into a 92mm version here!
  • Also, I use this fan. It's pretty powerful, and pretty loud!
    • Note: I couldn't get PWM to work properly with this fan. Maybe get a Delta one if you want that.

Notes and Limitations:

  • This currently only supports NVIDIA GPUs
  • This currently only supports normal PWM, not delta PWM
  • You may need to change some variables in the Arduino code depending on your fan's specifications.
    • Try looking up a datasheet
  • This was designed for an Arduino Uno, and should work on one. I don't know about running it on anything else, though.
  • tx_speed.py works fine, but it's just an infinite loop. I'm working on marking a version that uses a cron job, but it's not done yet.

Resources I used

TODO

  • Add diagram for wiring LED lights

k80-linux-cooling's People

Contributors

askiiart avatar

Watchers

 avatar  avatar

Forkers

blackhawk71

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.