- Edited
ARTIQ-5 is released today. To update, follow the stable branch manual at https://m-labs.hk/artiq/manual/installing.html.
Highlights of this new release (compared to 4.0):
- Performance improvements:
- Faster RTIO event submission (1.5x improvement in pulse rate test)
See: https://github.com/m-labs/artiq/issues/636 - Faster compilation times (3 seconds saved on kernel compilation time on a typical
medium-size experiment)
See: https://github.com/m-labs/artiq/commit/611bcc4db4ed604a32d9678623617cd50e968cbf
- Faster RTIO event submission (1.5x improvement in pulse rate test)
- Improved packaging and build system:
- new continuous integration/delivery infrastructure based on Nix and Hydra,
providing reproducibility, speed and independence. - rolling release process (https://github.com/m-labs/artiq/issues/1326).
- firmware, gateware and device database templates are automatically built for all
supported Kasli variants. - new JSON description format for generic Kasli systems.
- Nix packages are now supported.
- many Conda problems worked around.
- controllers are now out-of-tree.
- split packages that enable lightweight applications that communicate with ARTIQ,
e.g. controllers running on non-x86 single-board computers.
- new continuous integration/delivery infrastructure based on Nix and Hydra,
- Improved Urukul support:
- AD9910 RAM mode.
- Configurable refclk divider and PLL bypass.
- More reliable phase synchronization at high sample rates.
- Synchronization calibration data can be read from EEPROM.
- A gateware-level input edge counter has been added, which offers higher
throughput and increased flexibility over the usual TTL input PHYs where
edge timestamps are not required. Seeartiq.coredevice.edge_counter
for
the core device driver andartiq.gateware.rtio.phy.edge_counter
/
artiq.gateware.eem.DIO.add_std
for the gateware components. - With DRTIO, Siphaser uses a better calibration mechanism.
See: https://github.com/m-labs/artiq/commit/cc58318500ecfa537abf24127f2c22e8fe66e0f8 - Schedule updates can be sent to influxdb (artiq_influxdb_schedule).
- Experiments can now programatically set their default pipeline, priority, and flush flag.
- List datasets can now be efficiently appended to from experiments using
artiq.language.environment.HasEnvironment.append_to_dataset
. - The core device now supports IPv6.
- To make development easier, the bootloader can receive firmware and secondary FPGA
gateware from the network. - Python 3.7 compatibility (Nix and source builds only, no Conda).
- Various other bugs from 4.0 fixed.
- Preliminary Sayma v2 and Metlino hardware support.
Breaking changes:
- The
artiq.coredevice.ad9910.AD9910
and
artiq.coredevice.ad9914.AD9914
phase reference timestamp parameters
have been renamed toref_time_mu
for consistency, as they are in machine
units. - The controller manager now ignores device database entries without the
"command"
key set to facilitate sharing of devices between multiple
masters. - The meaning of the
-d/--dir
and--srcbuild
options ofartiq_flash
has changed. - Controllers for third-party devices are now out-of-tree.
aqctl_corelog
now filters log messages below theWARNING
level by default.
This behavior can be changed using the-v
and-q
options like the other
programs.- On Kasli the firmware now starts with a unique default MAC address
from EEPROM ifmac
is absent from the flash config. - The
-e/--experiment
switch ofartiq_run
andartiq_compile
has been renamed-c/--class-name
. artiq_devtool
has been removed.- Much of
artiq.protocols
has been moved to a separate packagesipyco
.
artiq_rpctool
has been renamed tosipyco_rpctool
. artiq_ctlmgr
and the influxdb tools have moved to a separate packageartiq-comtools
(normally installed by default).