18

Continuous integration services are wonderful for continually testing updates to packages for various languages. These include services like Travis-CI, Jenkins, and Shippable among many others. However, as I have explored these different services I have yet to find one that mentions support for software that leverages GPUs (NVIDIA, AMD, or otherwise). Does anyone know if any such service exists?

I realize this is not a strict programming question but I have searched this site and other forums and cannot find an answer. Perhaps no such service currently exists but I'm sure such information would be valuable to GPU programmers (CUDA and OpenCL alike).

cdeterman
  • 19,630
  • 7
  • 76
  • 100
  • Continuous integration tools like Travis-CI can be configured to run whatever you want on whatever you want via terminal style commands and Linux GPU instances do exist on AWS for instance, what's the problem with one of those? – Thomas Nairn May 01 '15 at 12:39
  • @ThomasNairn I was under the impression that Travis-CI didn't have GPU support. I was hoping to avoid AWS because my project is open-source so I don't need to pay for the services like Travis-CI. – cdeterman May 01 '15 at 12:41
  • Apologies, I actually meant Jenkins, you can set it up yourself and configure it to run a command just as you would run it manually. Unfortunately, I can't imagine there being anything free to do with GPU but you could always just localhost it? As hacky as that sounds. – Thomas Nairn May 01 '15 at 12:44
  • @ThomasNairn, thanks. Posting this question I didn't have high hopes for a free GPU CI but thought I would give it a shot. If one ever pops up I will update this question unless someone else happily knows of one :) – cdeterman May 01 '15 at 13:08

2 Answers2

10

Travis-CI (and probably other services that allow package installation) may be used to test OpenCL-based packages. Check travis configuration files for VexCL, Boost.Compute, or ViennaCL for examples.

The key here is to install packages providing support for running OpenCL on CPU. In all of the above examples this is done by installing fglrx=2:8.960-0ubuntu1 and opencl-headers. fglrx is a GPU driver by AMD, but it also provides CPU support. As far as I know, this is the only such package that may be installed out of the box on Ubuntu/Travis-CI.

In case of CUDA I think you are out of luck, since Travis-CI instances do not have an NVIDIA GPU installed.

ddemidov
  • 1,731
  • 13
  • 15
  • 2
    Thank you, are you aware of any other CI services that would support NVIDIA? I would like to develop both platforms and would use multiple services if need be. – cdeterman May 04 '15 at 12:27
  • Unfortunately, I don't know about such a service, but I would really like to know if there is one. – ddemidov May 04 '15 at 12:31
2

You can use Cirun.io which creates self-hosted runners for GitHub Actions on your Cloud. It gives you the freedom to chose GPU/CPU machines on your cloud provider. Also note that its free for Open source.

Here is a simple example of the .cirun.yml configuration file for spinning up GPU runners on AWS with GitHub Actions:

# Self-Hosted Github Action Runners on AWS via Cirun.io
# Reference: https://docs.cirun.io/reference/yaml.html
runners:
  - name: gpu-runner
    # Cloud Provider: AWS
    cloud: aws
    instance_type: g4dn.xlarge
    # NVIDIA Deep Learning AMI from AWS Marketplace
    # https://aws.amazon.com/marketplace/pp/prodview-e7zxdqduz4cbs
    machine_image: ami-00ac0c28c01352e53
    # preemptible instances seems quite less reliable.
    preemptible: false
    labels:
      - gpu
Amit Kumar
  • 830
  • 7
  • 17
  • Are you saying I wouldn’t need to pay for the AWS instance or that the service from cirun is free? – cdeterman Jul 03 '21 at 00:23
  • 1
    @cdeterman Apologies, I was probably not very descriptive. I meant you would pay to your cloud provider for the usage cost of the instances. Cirun as a service is free for open source. – Amit Kumar Jul 03 '21 at 20:14