- Published 2017

In this article, we continue exploring the topic of so-called induced methods for implementing complex matrix multiplication. Previous work investigated two approaches and demonstrated various algorithms for each method that compute matrix products in the complex domain using only a real matrix multiplication kernel. However, algorithms based on the more generally applicable of the two methods—the 4m method—lead to implementations that, for various reasons, often underperform their real domain benchmarks. To overcome these limitations, we derive a superior 1m method for expressing complex matrix multiplication, one which addresses virtually all of the shortcomings inherent in 4m. Our derivation also naturally exposes a symmetry that allows the method to perform well when updating either columnor row-stored matrices. Applying the method to two general algorithms for matrix multiplication yields a family of algorithmic variants, each with a unique set of circumstantial affinities. Further analysis suggests 1m will match or exceed the performance of a real matrix multiplication based on the same kernel, especially for certain rank-k updates. We also show that the method is actually a special case of a larger family of algorithms based on a 2m method, which is generally well-suited for storage formats that separate real and imaginary parts into separate matrices. Implementations are developed within the BLIS framework, which facilitates their extension to all level-3 operations. Testing on a recent Intel microarchitecture confirms that the 1m method yields performance that is competitive with solutions based on conventionally implemented complex kernels.

@inproceedings{Van2017InducingCM,
title={Inducing complex matrix multiplication via the 1m method},
author={G . Van},
year={2017}
}