---
name: "futhark-autotune"
section: "1"
platform: "linux"
package: "futhark"
version: "0.25.27-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/futhark-autotune"
---

# futhark-autotune(1)

calibrate run-time parameters

## NAME

futhark-autotune - calibrate run-time parameters

## SYNOPSIS

futhark autotune \[options...\] \<program.fut\>

## DESCRIPTION

**futhark autotune** attemps to find optimal values for threshold parameters given representative datasets.  This is done by repeatedly running running the program through *futhark-bench* with different values for the threshold parameters.  When **futhark** **autotune** finishes tuning a program **foo.fut**, the results are written to **foo.fut.tuning**, which will then automatically be picked up by subsequent uses of *futhark-bench* and *futhark-test*.

## OPTIONS

- **--backend=***name*

  The backend used when compiling Futhark programs (without leading **futhark**, e.g. just **opencl**).

- **--futhark=***program*

  The program used to perform operations (eg. compilation).  Defaults to the binary running **futhark autotune** itself.

- **--pass-option=***opt*

  Pass an option to programs that are being run.  For example, we might want to run OpenCL programs on a specific device:

  ```
  futhark autotune prog.fut --backend=opencl --pass-option=-dHawaii
  ```

- **--runs=***count*

  The number of runs per data set.

- **-v, --verbose**

  Print verbose information about what the tuner is doing.  Pass multiple times to increase the amount of information printed.

- **--skip-compilation**

  Do not run the compiler, and instead assume that the program has already been compiled.  Use with caution.

- **--spec-file=***FILE*

  Ignore the test specification in the program file(s), and instead load them from this other file.  These external test specifications use the same syntax as normal, but *without* line comment prefixes A **==** is still expected.

- **--tuning=***EXTENSION*

  Change the extension used for tuning files (**.tuning** by default).

- **--timeout=***seconds*

  Initial tuning timeout for each dataset in seconds. After running the intitial tuning run on each dataset, the timeout is based on the run time of that initial tuning. Defaults to 60.

  A negative timeout means to wait indefinitely.

## SEE ALSO

*futhark-bench*

## COPYRIGHT

2013-2020, DIKU, University of Copenhagen
