Skip to content

Supported Machines

The fal runtime lets you specify the size of the machine that your fal apps and functions run on.

Machine Types

ValueDescription
XS0.25 CPU cores, 256MB RAM (default)
S0.50 CPU cores, 1GB RAM
M2 CPU cores, 8GB RAM
L4 CPU cores, 32GB RAM
GPU-A60004 CPU cores, 18GB RAM, 1 GPU core (48GB VRAM)
GPU-A10010 CPU cores, 60GB RAM, 1 GPU core (40GB VRAM)
GPU-H10012 CPU cores, 112GB RAM, 1 GPU core (80GB VRAM)
GPU-H20012 CPU cores, 112GB RAM, 1 GPU core (141GB VRAM)
GPU-B2008 CPU cores, 64GB RAM, 1 GPU core (192GB VRAM)

For GPU machines, you can also specify the number of GPUs you want to use with the num_gpus option, see examples below.

Examples

Applications

class MyApp(fal.App):
machine_type = "GPU-H100"
num_gpus = 4
...

Functions

For example:

@fal.function(machine_type="GPU")
def my_function():
...
@fal.function(machine_type="L")
def my_other_function():
...

By default, the machine_type is set to XS.

You can also switch the machine type of an existing fal function by using the on method.

my_function_S = my_function.on(machine_type="S")

In the above example, my_function_S is a new fal function that has the same contents as my_function, but it will run on a machine type S.

Both functions can be called:

my_function() # executed on machine type `GPU`
my_function_S() # same as my_function but executed on machine type `S`

my_function is executed on machine type GPU. And my_function_S, which has the same logic as my_function, is now executed on machine type S.