An accelerator device configured as field programmable gate array, the accelerator device comprising: one or more slots (1630, 1632), each slot (1630, 1632) being a subset of the gates present in the field programmable gate array and implementing a kernel (1660, 1662), each kernel (1660, 1662) being embodied as a set of gates configured to perform a set of functions; and circuitry to: receive, from a compute device, one or more parameters of a workload, the workload to be performed at a slot of the one or more slots (1630, 1632) of the accelerator device and one or more slots (1634, 1636) of one or more remote accelerator devices; provide the one or more parameters of the workload to a kernel (1660, 1662) of the one or more slots (1630, 1632) of the accelerator device; receive telemetry data indicating a performance parameter of the one or more remote accelerator devices; receive, from the kernel (1660, 1662), a workload result based on the one or more parameters of the workload;automatically compress the workload result without instruction from the kernel (1660, 1662), wherein to automatically compress the workload result comprises: to determine whether or not compression should be used based on the telemetry data, and to select a compression algorithm to use based on the telemetry data; and send the compressed workload result to the compute device. one or more slots (1630, 1632), each slot (1630, 1632) being a subset of the gates present in the field programmable gate array and implementing a kernel (1660, 1662), each kernel (1660, 1662) being embodied as a set of gates configured to perform a set of functions; and circuitry to: receive, from a compute device, one or more parameters of a workload, the workload to be performed at a slot of the one or more slots (1630, 1632) of the accelerator device and one or more slots (1634, 1636) of one or more remote accelerator devices; provide the one or more parameters of the workload to a kernel (1660, 1662) of the one or more slots (1630, 1632) of the accelerator device; receive telemetry data indicating a performance parameter of the one or more remote accelerator devices; receive, from the kernel (1660, 1662), a workload result based on the one or more parameters of the workload;automatically compress the workload result without instruction from the kernel (1660, 1662), wherein to automatically compress the workload result comprises: to determine whether or not compression should be used based on the telemetry data, and to select a compression algorithm to use based on the telemetry data; and send the compressed workload result to the compute device. receive, from a compute device, one or more parameters of a workload, the workload to be performed at a slot of the one or more slots (1630, 1632) of the accelerator device and one or more slots (1634, 1636) of one or more remote accelerator devices; provide the one or more parameters of the workload to a kernel (1660, 1662) of the one or more slots (1630, 1632) of the accelerator device; receive telemetry data indicating a performance parameter of the one or more remote accelerator devices; receive, from the kernel (1660, 1662), a workload result based on the one or more parameters of the workload;automatically compress the workload result without instruction from the kernel (1660, 1662), wherein to automatically compress the workload result comprises: to determine whether or not compression should be used based on the telemetry data, and to select a compression algorithm to use based on the telemetry data; and send the compressed workload result to the compute device. to determine whether or not compression should be used based on the telemetry data, and to select a compression algorithm to use based on the telemetry data; and send the compressed workload result to the compute device.