# Convolution Properties of Orlicz Spaces on hypergroups

Ali Reza Bagheri Salec, Vishvesh Kumar and Seyyed Mohammad Tabatabaie
Department of Mathematics, University of Qom, Qom, Iran<EMAIL_ADDRESS>Department of Mathematics: Analysis, Logic and Discrete Mathematics, Ghent
University, Belgium<EMAIL_ADDRESS>Department of Mathematics,
University of Qom, Qom, Iran<EMAIL_ADDRESS>
Dedicated to Prof. Kenneth A. Ross on his 85th birthday

###### Abstract.

In this paper, for a locally compact commutative hypergroup $K$ and for a pair
$(\Phi_{1},\Phi_{2})$ of Young functions satisfying sequence condition, we
give a necessary condition in terms of aperiodic elements of the center of
$K,$ for the convolution $f\ast g$ to exist a.e., where $f$ and $g$ are
arbitrary elements of Orlicz spaces $L^{\Phi_{1}}(K)$ and $L^{\Phi_{2}}(K)$,
respectively. As an application, we present some equivalent conditions for
compactness of a compactly generated locally compact abelian group. Moreover,
we also characterize compact convolution operators from $L^{1}_{w}(K)$ into
$L^{\Phi}_{w}(K)$.

###### Key words and phrases:

locally compact group, locally compact hypergroup, Orlicz space, convolution,
Young function, weight function, compact operator.

###### 2010 Mathematics Subject Classification:

46E30, 43A62, 43A15.
∗Corresponding author

##  1\. Introduction

This is well-known $L^{p}$-conjecture that if $1<p<\infty$ and $G$ is a
locally compact group, then the Lebesgue space $L^{p}(G)$ is a Banach algebra
under the convolution product if and only if $G$ is compact. This conjecture
was solved by Saeki [29] by quite elementary means, much more elementary than
some of the proofs of earlier partial results [24, 25]. In [1] it is mentioned
that for each $p>2$, if $f\ast g$ exists a.e. for all $f,g\in L^{p}(G)$, then
$G$ is compact, and so automatically $f\ast g\in L^{p}(G)$; see also [23]. In
[34], under some conditions, a version of this fact on hypergroups has been
given. This topic has been studied on Orlicz spaces too. H. Hudzik, A. Kamiska
and J. Musielak in [11, Theorem 2] gave some equivalent conditions for an
Orlicz space $L^{\Phi}(G)$ to be a convolution Banach algebra:

######  Theorem 1.1.

If $G$ is a locally compact abelian group and $\Phi$ is a Young function
satisfying $\Delta_{2}$-condition, then the following conditions are
equivalent:

  1. (1)

$L^{\Phi}(G)$ is a Banach algebra under convolution;

  2. (2)

$L^{\Phi}(G)\subseteq L^{1}(G)$;

  3. (3)

$\lim_{x\rightarrow 0^{+}}\frac{\Phi(x)}{x}>0$ or $G$ is compact.

Recently, A. Osançlıol and S. Öztop in [21] studied the weighted Orlicz
algebras on locally compact groups (see also [33]). They proved that, even for
a non-compact group $G$, if $L^{\Phi}_{w}(G)\subseteq L^{1}_{w}(G)$ for a
weight $w$, then $L^{\Phi}_{w}(G)$ is a convolution Banach algebra. In [22],
these results were extended to the hypergroup case (see [17] for unweighted
case). In [34], for a compactly generated abelian group $G,$ it is proved that
if $\Phi$ is a Young function with $\Delta_{2}$-condition and satisfying a
sequence condition, then $L^{\Phi}(G)$ is a convolution Banach algebra if and
only if $f\ast g$ exists a. e. for all $f,g\in L^{\Phi}(G)$.

A main motivation for writing this paper is the above background and the
following result from [23, Corollary 1.4] about Lebesgue spaces on locally
compact groups.

######  Theorem 1.2.

Let $G$ be a locally compact abelian group and $1<p,q<\infty$. Then,
$L^{p}(G)\ast L^{q}(G)\subseteq L^{p}(G)$ if and only if $G$ is compact.

In Section 3, we intend to give a version of this result for Orlicz spaces on
locally compact hypergroups; Orlicz spaces are a huge generalization of the
usual Lebesgue spaces, and also, hypergroups are an extension of locally
compact groups. Indeed, for a pair $(\Phi_{1},\Phi_{2})$ of Young functions
satisfying the sequence condition (3.1) (see Definition 3.1), we show that if
for each $f\in L^{\Phi_{1}}(K)$ and $g\in L^{\Phi_{2}}(K)$, $f\ast g$ exists
almost everywhere, then there is no aperiodic element in $Z(K)$ with respect
to the action $Z(K)\curvearrowright(K,\lambda)$, where $K$ is a locally
compact commutative hypergroup and $Z(K)$ is the center of $K$. As an
application, among other results, it is proved that a compactly generated
abelian group $G$ is compact if and only if for each pair
$(\Phi_{1},\Phi_{2})$ of Young functions satisfying the sequence condition
(3.1) and for each $f\in L^{\Phi_{1}}(G)$ and $g\in L^{\Phi_{2}}(G)$, $f\ast
g$ exists a.e. We note that if we consider Lebesgue spaces $L^{p_{1}}(G)$ and
$L^{p_{2}}(G)$, where $p_{1},p_{2}>2$, the novel conclusion Corollary 3.7 is
obtained for Lebesgue spaces too, because the Young functions
$\Phi_{p_{i}},i=1,2$ defined by $\Phi_{p_{i}}(x):=|x|^{p_{i}}$ satisfy the
sequence condition (3.1).

In section 4, we fix a function $g\in C_{c}(K)$, and study the compact
convolution operator $f\mapsto f\ast g$ from $L^{1}_{w}(K)$ into
$L^{\Phi}_{w}(K)$, where $K$ is a locally compact hypergroup and $w$ is a
weight function on $K$. We show that this operator is compact if and only if
the function $x\mapsto\frac{1}{w(x)}\|{\rm L}_{x}g\|_{\Phi,w}$ on $K$ vanishes
at infinity. This conclusion is an Orlicz space version of the main result of
[9]. It is also a generalization of one result in [33] on locally compact
hypergroups.

In the next section, we recall some definitions and notation concerning
locally compact hypergroups and Orlicz spaces, and also state some facts about
aperiodic elements of a group action on a measure space which are used in the
proof of our main result.

##  2\. Preliminaries

###  2.1. Locally Comapct Hypergroups

Locally compact hypergroups were introduced in the papers [7, 12, 30] in the
1970’s. The main references for us on this structure are the paper [12] (in
which hypergroups are called _convos_) and the monograph [2]. Let $K$ be a
locally compact Hausdorff space. We denote the space of all bounded (complex-
valued) Radon measures on $K$ by $\mathcal{M}(K)$ and all those in
$\mathcal{M}(K)$ which are non-negetive by $\mathcal{M}^{+}(K)$. The support
of each measure $\mu\in\mathcal{M}(K)$ is denoted by ${\rm supp}\mu$, and for
each $x\in K$, $\delta_{x}$ denotes the Dirac measure at $x$. The space $K$ is
called a _locally compact hypergroup_ (or simply a _hypergroup_) if there are
a _convolution_
$*:\mathcal{M}(K)\times\mathcal{M}(K)\rightarrow\mathcal{M}(K)$, an
_involution_ $x\mapsto x^{-}$ on $K$, and an element $e$ (called the
_identity_ element) such that the following conditions hold:

  1. (1)

$(\mathcal{M}(K),+,\ast)$ is a complex Banach algebra;

  2. (2)

for all nonnegative measures $\mu,\nu\in\mathcal{M}(K)$, $\mu*\nu$ is also a
nonnegative measure in $\mathcal{M}(K)$ and the mapping
$(\mu,\nu)\mapsto\mu*\nu$ from $\mathcal{M}^{+}(K)\times\mathcal{M}^{+}(K)$ to
$\mathcal{M}^{+}(K)$ is continuous, where $\mathcal{M}^{+}(K)$ is equipped
with the cone topology;

  3. (3)

for all $x,y\in K$, $\delta_{x}*\delta_{y}$ is a probability measure with
compact support;

  4. (4)

the mapping $(x,y)\mapsto\text{supp}(\delta_{x}*\delta_{y})$ from $K\times K$
into the space $\mathfrak{C}(K)$ of all non-empty compact subsets of $K$ is
continuous, where $\mathfrak{C}(K)$ is equipped with Michael topology whose
subbasis is the family of all
$\mathfrak{C}_{U,V}:=\\{A\in\mathfrak{C}(K):A\cap U\neq\varnothing\text{ and
}A\subseteq V\\}$, where $U$ and $V$ are open subsets of $K$;

  5. (5)

for each $x\in K$, $\delta_{e}*\delta_{x}=\delta_{x}=\delta_{x}*\delta_{e}$;

  6. (6)

the mapping $x\mapsto x^{-}$ on $K$ is a homeomorphism, and for each $x,y\in
K$ we have $(x^{-})^{-}=x$ and
$(\delta_{x}*\delta_{y})^{-}=\delta_{y^{-}}*\delta_{x^{-}}$, where for each
$\mu\in\mathcal{M}(K)$ and Borel set $E\subseteq K$,
$\mu^{-}(E):=\mu\left(\\{x^{-}:\,x\in E\\}\right)$. Also, $e\in{\rm
supp}(\delta_{x}*\delta_{y})$ if and only if $x=y^{-}$.

A hypergroup $K$ is called _commutative_ if for each $x,y\in K$,
$\delta_{x}\ast\delta_{y}=\delta_{y}\ast\delta_{x}$. Any locally compact group
is a hypergroup. See the book and papers [2, 8, 35, 14, 15, 16] for more
examples including double coset spaces, polynomial hypergroups and orbit
hypergroups and their applications.

Throughout, we assume that $(K,\ast,\cdot^{-},e)$ is a locally compact
hypergroup with a left-invariant measure, i.e. a non-negative Radon measure
$\lambda$ on $K$ such that for each $x\in K$, $\delta_{x}\ast\lambda=\lambda$.
It is known that any commutative hypergroup, compact hypergroup, discrete
hypergroup and amenable hypergroup admits such a measure [2].

For each element $x\in K$ and Borel subsets $E,F$ of $K$ we denote

$x\ast F:=\bigcup_{y\in F}{\rm supp}(\delta_{x}\ast\delta_{y}),\quad E\ast
F:=\bigcup_{t\in E}\left(t\ast F\right).$

The _convolution_ of any two measurable functions $f,g:K\rightarrow\mathbb{C}$
is defined by

$(f\ast g)(x):=\int_{K}f(y)g(y^{-}\ast x)\,d\lambda(y),\quad(x\in K),$

when this integral exists, where

$g(y^{-}\ast x):=\int_{K}g(t)\,d(\delta_{y^{-}}\ast\delta_{x})(t).$

If $\mu\in\mathcal{M}(K)$ and $f$ is a Borel measurable function on $K$, the
convolution $\mu*f$ is defined by:

$(\mu*f)(x)=\int_{K}f(y^{-}*x)\ d\mu(y),\quad(y\in K).$

In particular, $(\delta_{z^{-}}*f)(x)=f_{z}(y)=({\rm L}_{z}f)(y)$ for $z\in
K.$

###  2.2. Group Action on a Measure space

######  Definition 2.1.

Let $G$ be a locally compact group, $X$ be a locally compact Hausdorff space,
and $\mu$ be a non-negative Radon measure on $X$. We say that a continuous
function

$G\times X\longrightarrow X,\quad(s,x)\mapsto sx,\quad(s\in G,x\in X)$

is an _action_ of $G$ on the measure space $(X,\mu)$ (and write
$G\curvearrowright(X,\mu)$) if

  1. (i)

for each $x\in X$, $ex=x$, where $e$ is the identity element of $G$;

  2. (ii)

for each $s,t\in G$ and $x\in X$, $s(tx)=(st)x$;

  3. (iii)

the measure $\mu$ is $G$-invariant, i.e., for each $s\in G$ and any Borel
subset $E$ of $X$, $sE:=\\{sx:\,x\in E\\}$ is also a Borel subset of $X$ and
$\mu(sE)=\mu(E)$.

Assume that $H$ is a closed subgroup of a locally compact group $G$ with
modular functions $\Delta_{H}:H\rightarrow(0,\infty)$ and
$\Delta_{G}:G\rightarrow(0,\infty)$. Denote the restriction of $\Delta_{G}$ on
$H$ by $\Delta_{G}|_{H}.$ If $\Delta_{H}=\Delta_{G}|_{H}$ then there exists a
$G$-invariant Radon measure $\mu$ on $G/H$, and $G$ naturally acts on the
quotient space $(G/H,\mu)$. For more study on this topic we refer to the book
[13, Chapter IV].

######  Definition 2.2.

An element $a$ of a locally compact group $G$ is called _compact_ if the
closed subgroup $G(a)$ generated by $a$ is compact.

For some details about compact elements of $G$ see [10]. In the literature,
non-compact elements of a group $G$ are also called _aperiodic elements_ (for
example see [3, 4]). Trivially, in any discrete group, an element is aperiodic
if and only if it has infinite order (i.e. it is not a torsion element).
Recently, these elements have been used to study linear dynamical properties
of weighted translation operators on locally compact groups; see [5, 4]. It is
known that any element, except the identity, of the non-discrete additive
group $\mathbb{R}^{n}$, the Heisenberg group, and the affine group is
aperiodic. By [3, Lemma 2.1], if $G$ is a second countable group, an element
$a\in G$ is aperiodic if and only if for each compact subset $E$ of $G$, there
is an integer $N>0$ such that for each $n\geq N$, $E\cap a^{n}E=\varnothing$.
This equivalence leads one to give the following definition which recently has
been used to present a sufficient and necessary condition for a weighted
translation, generated by a group action, to be disjoint topologically
transitive.

######  Definition 2.3.

An element $a\in G$ is called _aperiodic_ with respect to a given action
$G\curvearrowright(X,\mu)$ if for each compact subset $E\subseteq X$, there
exists an integer $N>0$ such that for each $n\geq N$, $E\cap
a^{n}E=\varnothing$.

Thanks to [3, Lemma 2.1], the aperiodic elements of a second countable group
$G$ are same as the aperiodic elements of $G$ with respect to the natural
action of $G$ on itself. In this paper, we will apply this concept regarding
the action of the center of a hypergroup on the whole of hypergroup. The
_center_ $Z(K)$ of a hypergroup $K$ is defined as the set of all $x\in K$ such
that for each $y\in K$, $\text{supp}(\delta_{x}\ast\delta_{y})$ is a
singleton. In other words, for each $x\in Z(K)$ and $y\in K$, there is an
element $\alpha(x,y)\in K$ such that
$\delta_{x}\ast\delta_{y}=\delta_{\alpha(x,y)}$. The center $Z(K)$ is the
maximal subgroup of $K$, and naturally acts on $(K,\lambda)$ by the mapping
$(x,y)\mapsto\alpha(x,y)$ [12, Section 10.4]. In the sequel, we denote $x\ast
y:=\alpha(x,y)$ for all $x\in Z(K)$ and $y\in K$. Also, for each $x\in Z(K)$
and $n\in\mathbb{N}$ we put $x^{n}:=x\ast\ldots\ast x$ ($n$ times), and
$x^{-n}:=(x^{-})^{n}$. For more details and examples about center of
hypergroups see [28]. We use this action in the main result of the paper. One
can easily see that for each element $x\in Z(K)$ and Borel subset $E$ of $K$,

$\lambda(x\ast E)=\lambda(E)$ (2.1)

while this equality does not hold for arbitrary elements of $K$; see [12].

###  2.3. Orlicz Spaces

In this subsection, we recall some basic definitions and notation about Orlicz
spaces; see the monographs [26, 27] on this topic. A convex even mapping
$\Phi:\mathbb{R}\rightarrow[0,\infty)$ is called a _Young function_ if
$\Phi(0)=0$ and $\lim_{x\rightarrow\infty}\Phi(x)=\infty$. The _complementary_
of a Young function $\Phi$ is defined by

$\Psi(x):=\sup\\{y|x|-\Phi(y):\,y\geq 0\\},\quad(x\in\mathbb{R}).$

In the sequel, $\Psi$ is always the complementary of a given Young function
$\Phi$. The set of all Borel measurable functions $f:K\rightarrow\mathbb{C}$
such that for some $\alpha>0$,

$\int_{K}\Phi(\alpha|f(x)|)\,d\lambda(x)<\infty,$

is denoted by $L^{\Phi}(K)$. We assume that two elements of $L^{\Phi}(K)$ are
the same if they are equal $\lambda$-a.e. For each $f\in L^{\Phi}(K)$ we
define

$\|f\|_{\Phi}:=\sup\left\\{\int_{K}|fv|\,d\lambda:\,\int_{K}\Psi(|v(x)|)\,d\lambda(x)\leq
1\right\\}.$

The pair $(L^{\Phi}(K),\|\cdot\|_{\Phi})$ is called an _Orlicz space_. Since
$\lambda$ is a regular measure on $K$, by [26, Chapter III, Proposition 11],
$(L^{\Phi}(K),\|\cdot\|_{\Phi})$ is a Banach space. A Young function $\Phi$ is
said to be _$\Delta_{2}$ -regular_ and we write $\Phi\in\Delta_{2}$, if there
are constants $k>0$ and $t_{0}\geq 0$ such that $\Phi(2t)\leq k\Phi(t)$ for
each $t\geq t_{0}$. At times, we also say that $\Phi$ satisfies
$\Delta_{2}$-condition if $\Phi\in\Delta_{2}.$ If $\Phi$ is
$\Delta_{2}$-regular, then the space $C_{c}(K)$ is dense in $L^{\Phi}(K)$.

Orlicz spaces are a more applicable generalization of Lebesgue spaces. In
fact, for each $1<p<\infty$, the function $\Phi_{p}$ defined by
$\Phi_{p}(x):=|x|^{p}$ for all $x\in\mathbb{R}$, is a Young function and the
Orlicz space $L^{\Phi}(K)$ is same as the usual Lebesgue space
$L^{p}(K,\lambda)$. Orlicz spaces have been studied for several decades; see
[17, 18, 19, 31, 20] for some interesting recent development related to Orlicz
spaces on locally compact hypergroups.

##  3\. Convolution of Two Orlicz Spaces

In this section, we study the convolution properties of two different Orlicz
spaces on locally compact hypergroups in terms of aperiodic elements of their
centers. We will also derive interesting results for locally compact groups.
Before stating the main result of the section, we need to introduce a class of
Young functions.

######  Definition 3.1.

Let $\Phi_{1}$ and $\Phi_{2}$ be Young functions. We say that the pair
$(\Phi_{1},\Phi_{2})$ satisfies the _sequence condition_ if there are two
sequences $(\alpha_{n})$ and $(\beta_{n})$ of nonnegative numbers such that

$\sum_{n=1}^{\infty}\Phi_{1}(\alpha_{n})<\infty,\quad\sum_{n=1}^{\infty}\Phi_{2}(\beta_{n})<\infty\quad\text{and}\quad\sum_{n=1}^{\infty}\alpha_{n}\beta_{n}=\infty.$
(3.1)

######  Example 3.2.

For each $p\geq 1$ and $\gamma\geq 0$ define the function $\Phi_{p,\gamma}$ by
$\Phi_{p,\gamma}(x):=|x|^{p}\left(\ln(1+|x|)\right)^{\gamma}$ for all
$x\in\mathbb{R}$. We denote the set of all $(p,\gamma)$ such that $p+\gamma>2$
and $\Phi_{p,\gamma}$ is a Young function by $\Omega$. Then, for each
$(p_{1},\gamma_{1}),(p_{2},\gamma_{2})\in\Omega$, setting
$\alpha_{n}=\beta_{n}:=\frac{1}{\sqrt{n}}$, one can see that
$(\Phi_{p_{1},\gamma_{1}},\Phi_{p_{2},\gamma_{2}})$ satisfies the sequence
condition (3.1).

Now, we can present one of the main results of this paper.

######  Theorem 3.3.

Let $K$ be a locally compact commutative hypergroup111So $K$ has an invariant
measure $\lambda$.. Suppose that $\Phi_{1}$ and $\Phi_{2}$ are Young functions
such that the pair $(\Phi_{1},\Phi_{2})$ satisfies the sequence condition
(3.1). If for each $f\in L^{\Phi_{1}}(K)$ and $g\in L^{\Phi_{2}}(K)$, $(f\ast
g)(x)$ exists for almost every $x\in K$, then the set of aperiodic elements of
$Z(K)$ with respect to the action $Z(K)\curvearrowright(K,\lambda)$ is empty.

###### Proof.

Suppose that the pair $(\Phi_{1},\Phi_{2})$ of Young functions satisfies the
sequence condition, and $f\ast g$ exists a.e. for all $f\in L^{\Phi_{1}}(K)$
and $g\in L^{\Phi_{2}}(K)$. Let, if possible, there exists an aperiodic
element $a$ in $Z(K)$ with respect to the action
$Z(K)\curvearrowright(K,\lambda)$. Fix a compact symmetric neighborhood $U$ of
$e$ in $K$. Then, by Definition 2.3, there exists an integer $N>0$ such that
for each $n\geq N$,

$U\cap\left(a^{n}\ast U\right)=\varnothing.$ (3.2)

Note that (3.2) also implies that $U\cap\left(a^{-n}\ast
U\right)=\varnothing.$

Thanks to [12, Lemma 3.2D], there is a compact symmetric neighborhood $V$ of
$e$ in $K$ such that $V\ast V\subseteq U$. So, by (3.2), for each distinct
$m,n\geq N$ we have

$\left(a^{-mN}\ast V\right)\cap\left(a^{-nN}\ast
V\right)=\varnothing\,\,\text{and}\,\,\left(a^{mN}\ast V\ast
V\right)\cap\left(a^{nN}\ast V\ast V\right)=\varnothing.$ (3.3)

Indeed, to prove this, let us consider an element $t$ which is in $a^{-mN}\ast
V$ and $a^{-nN}\ast V$. Then, there exist $u,v\in V$ such that
$t\in\\{a^{-mN}\\}\ast\\{u\\}$ and $t\in\\{a^{-nN}\\}\ast\\{v\\}$. Now, as
$a\in Z(K),$ we have

$u\in\\{a^{mN}\\}\ast\\{t\\}\subseteq\\{a^{mN}\\}\ast\\{a^{-nN}\\}\ast\\{v\\}\subseteq
a^{(m-n)N}\ast U,$

contradicting (3.2) as $u\in U$. Therefore, $\left(a^{-mN}\ast
V\right)\cap\left(a^{-nN}\ast V\right)=\varnothing$. Similarly, one can see
that $\left(a^{mN}\ast V\ast V\right)\cap\left(a^{nN}\ast V\ast
V\right)=\varnothing$.

Since $(\Phi_{1},\Phi_{2})$ satisfies the sequence condition, there are two
sequences $(\alpha_{n})$ and $(\beta_{n})$ of nonnegative numbers such that
the inequalities in (3.1) hold. So, there is an integer $N^{\prime}>0$ such
that

$\sum_{n=N^{\prime}}^{\infty}\Phi_{1}(\alpha_{n})<\frac{1}{\lambda(V)}\quad\text{and}\quad\sum_{n=N^{\prime}}^{\infty}\Phi_{2}(\beta_{n})<\frac{1}{\lambda(V\ast
V)}.$

Define

$f:=\sum_{n=N^{\prime}}^{\infty}\alpha_{n}\chi_{a^{-nN}\ast V},$

and

$g:=\sum_{n=N^{\prime}}^{\infty}\beta_{n}\chi_{a^{nN}\ast V\ast V},$

where $\chi_{E}$ denotes the characteristic function of $E\subseteq K$. Hence,
because of (3.3) and (2.1) and applying the Monotone Convergence Theorem we
have

$\displaystyle\int_{K}\Phi_{1}(f(x))\,d\lambda(x)$
$\displaystyle=\int_{\bigcup_{n=N^{\prime}}^{\infty}a^{-nN}\ast
V}\Phi_{1}(f(x))\,d\lambda(x)$
$\displaystyle=\sum_{n=N^{\prime}}^{\infty}\int_{a^{-nN}\ast
V}\Phi_{1}(f(x))\,d\lambda(x)$
$\displaystyle=\sum_{n=N^{\prime}}^{\infty}\int_{a^{-nN}\ast
V}\Phi_{1}(\alpha_{n})\,d\lambda(x)$
$\displaystyle=\lambda(V)\sum_{n=N^{\prime}}^{\infty}\Phi_{1}(\alpha_{n})<1,$

where we have used $\Phi_{1}(0)=0$ in the first equality. In particular, $f\in
L^{\Phi_{1}}(K)$. Similarly,

$\displaystyle\int_{K}\Phi_{2}(g(x))\,d\lambda(x)$
$\displaystyle=\lambda(V\ast
V)\sum_{n=N^{\prime}}^{\infty}\Phi_{2}(\beta_{n})<1,$

and this implies that $g\in L^{\Phi_{2}}(K)$. On the other hand, for each
$x\in V,$ using the fact that $\lambda(V)>0$ [2, Theorem 1.3.12], we have

$\displaystyle(f\ast g)(x)$ $\displaystyle=\int_{K}f(y)g(y^{-}\ast
x)\,d\lambda(y)$
$\displaystyle=\sum_{n=N^{\prime}}^{\infty}\alpha_{n}\int_{a^{-nN}\ast
V}g(y^{-}\ast x)\,d\lambda(y)$
$\displaystyle=\sum_{n=N^{\prime}}^{\infty}\alpha_{n}\int_{a^{-nN}\ast
V}\beta_{n}\,d\lambda(y)$
$\displaystyle=\lambda(V)\sum_{n=N^{\prime}}^{\infty}\alpha_{n}\beta_{n}=\infty,$

contradicting the hypothesis $f*g$ exists a.e. ∎

If $K$ is a locally compact group, then the action $Z(K)$ on $K$ is same as
the natural action of $K$ on itself, because in this case we have $Z(K)=K$.
So, the following result holds.

######  Corollary 3.4.

If a locally compact abelian group $G$ has an aperiodic element, then for each
pair $(\Phi_{1},\Phi_{2})$ of Young functions satisfying the sequence
condition (3.1), there are $f\in L^{\Phi_{1}}(G)$ and $g\in L^{\Phi_{2}}(G)$
such that

$\lambda\left(\\{x\in G:(f\ast g)(x)\text{ does not exist}\\}\right)>0.$

######  Corollary 3.5.

Let $G$ be a compactly generated locally compact abelian group. Then, the
followings are equivalent:

  1. (1)

$G$ is compact.

  2. (2)

There is a pair $(\Phi_{1},\Phi_{2})$ of Young functions satisfying the
sequence condition such that for each $f\in L^{\Phi_{1}}(G)$ and $g\in
L^{\Phi_{2}}(G)$, $f\ast g$ exists a.e.

  3. (3)

For each pair $(\Phi_{1},\Phi_{2})$ of Young functions satisfying the sequence
condition and for each $f\in L^{\Phi_{1}}(G)$ and $g\in L^{\Phi_{2}}(G)$,
$f\ast g$ exists a.e.

###### Proof.

It is enough to prove $(2)\Rightarrow(1)$. Let $\Phi_{1}$ and $\Phi_{2}$ are
two Young functions such that $(\Phi_{1},\Phi_{2})$ satisfy the sequence
condition. Since $G$ is a compactly generated abelian group, thanks to [10,
9.26(b)], the set of compact elements of $G$ is a compact subgroup of $G$. So,
if $G$ is not compact, it has an aperiodic element, and this contradicts
Theorem 3.3. ∎

######  Example 3.6.

The additive discrete group $\mathbb{Z}$ is a non-compact finitely generated
abelian group. So, by Corollary 3.5, for each pair $(\Phi_{1},\Phi_{2})$ of
Young functions satisfying the sequence condition (3.1), there are $f\in
l^{\Phi_{1}}(\mathbb{Z})$ and $g\in l^{\Phi_{2}}(\mathbb{Z})$ such that
$(f\ast g)(n)=\infty$ for infinite many $n$ in $\mathbb{Z}$.

Compare the following conclusion with [1, Theorem 1.1] and Theorem 4.4 from
T.S. Quek and L.Y.H. Yap.

######  Corollary 3.7.

Let $G$ be a compactly generated locally compact abelian group and
$2<p,q<\infty$. Then, $G$ is compact if and only if $f\ast g$ exists a.e. for
all $f\in L^{p}(G)$ and $g\in L^{q}(G)$.

##  4\. Compact Convolution Operators

In the sequel we assume that $K$ is a locally compact hypergroup, and $w$ is a
weight on $K,$ that is, a positive continuous function on $K$ such that for
each $x,y\in K$, $w(x\ast y)\leq w(x)\,w(y)$. Here, $\mathcal{M}_{w}(K)$
denotes the set of all measures $\mu\in\mathcal{M}(K)$ with
$w\mu\in\mathcal{M}(K)$. For each $\mu\in\mathcal{M}_{w}(K)$ we set
$\|\mu\|_{w}:=\|w\mu\|$. In a similar way, we can also define $L^{1}_{w}(K)$
and $L^{\Phi}_{w}(K).$

The goal of this section is to give some equivalent condition for a
convolution operator from $L^{1}_{w}(K)$ into the weighted Orlicz space
$L^{\Phi}_{w}(K)$ to be a compact operator. For this, we need the next
theorem.

######  Theorem 4.1.

Let $K$ be a locally compact hypergroup and $g\in C_{c}(K)$. Suppose that the
bounded linear operators $T_{g}:L^{1}_{w}(K)\rightarrow L^{\Phi}_{w}(K)$ and
$\tilde{T}_{g}:\mathcal{M}_{w}(K)\rightarrow L^{\Phi}_{w}(K)$ are defined by

$T_{g}(f):=f\ast g,\quad(f\in L^{1}_{w}(K))$

and

$\tilde{T}_{g}(\mu):=\mu\ast g,\quad(\mu\in\mathcal{M}_{w}(K)).$ (4.1)

Then, $T_{g}$ is compact if and only if $\tilde{T}_{g}$ is compact.

###### Proof.

First suppose that $T_{g}$ is a compact operator. By [22, Theorem 4.1], there
is a bounded left approximate identity $\\{e_{\alpha}\\}_{\alpha\in I}$ in
$L^{1}_{w}(K)$ such that for each $h\in C_{c}(K)$, $e_{\alpha}\ast
h\rightarrow h$ in $L^{\Phi}_{w}(K)$. For each $\mu\in\mathcal{M}_{w}(K)$ we
have

$\left\|\tilde{T}_{g}(\mu)-T_{g}(\mu\ast
e_{\alpha})\right\|_{\Phi,w}=\|\mu\ast g-\mu\ast(e_{\alpha}\ast
g)\|_{\Phi,w}\leq\|\mu\|_{w}\,\|g-(e_{\alpha}\ast g)\|_{\Phi,w}.$

Then, we have

$\left\\{\tilde{T}_{g}(\mu):\,\|\mu\|_{w}\leq
1\right\\}\subseteq\overline{\left\\{T_{g}(\mu\ast e_{\alpha}):\,\alpha\in
I,\mu\in\mathcal{M}_{w}(K),\|\mu\|_{w}\leq 1\right\\}}^{\|\cdot\|_{\Phi,w}}.$
(4.2)

Now, from boundedness of the set

$\\{\mu\ast e_{\alpha}:\,\alpha\in I,\mu\in\mathcal{M}_{w}(K),\|\mu\|_{w}\leq
1\\}$

in $L^{1}_{w}(K)$, one can see that
$\left\\{\tilde{T}_{g}(\mu):\,\|\mu\|_{w}\leq 1\right\\}$ is compact, and so
the proof of this direction is complete. Proof of the converse is easy. ∎

The following result is an Orlicz-space version of the main result of [9,
Theorem 2].

######  Theorem 4.2.

Let $K$ be a locally compact hypergroup. Let $(\Phi,\Psi)$ be a Young pair
with $\Psi\in\Delta_{2}$, and $g\in C_{c}(K)$. Define the operator
$T_{g}:L^{1}_{w}(K)\rightarrow L^{\Phi}_{w}(K)$ by

$T_{g}(f):=f\ast g,\quad(f\in L^{1}_{w}(K)).$

Then, $T_{g}$ is compact if and only if the function $F_{g}$ defined by

$F_{g}:K\rightarrow\mathbb{R},\quad F_{g}(x):=\frac{1}{w(x)}\|{\rm
L}_{x}g\|_{\Phi,w}$ (4.3)

for all $x\in K$, vanishes at infinity.

###### Proof.

Suppose first that $T_{g}$ be a compact operator but that $F_{g}$ does not
vanish at infinity. Then, there is a number $\varepsilon>0$ such that for each
compact set $F\subseteq K$, there exists an element $x_{F}\in K\setminus F$
such that

$\left\|\tilde{T}_{g}\left(\frac{1}{w(x_{F})}\delta_{x_{F}}\right)\right\|_{\Phi,w}=\frac{1}{w(x_{F})}\left\|L_{x_{F}}g\right\|_{\Phi,w}>\varepsilon,$
(4.4)

where $\tilde{T}_{g}$ is the operator defined by (4.1). By Theorem 4.1, the
operator $\tilde{T}_{g}$ is also compact. Then, by boundedness of the set

$\left\\{\frac{1}{w(x_{F})}\delta_{x_{F}}:\,F\subseteq K\text{ is
compact}\right\\}$

in $\mathcal{M}_{w}(K)$, there exists a subnet $\\{x_{F_{i}}\\}$ of
$\\{x_{F}\\}$ and a function $h\in L^{\Phi}_{w}(K)$ such that

$\lim_{i}\tilde{T}_{g}\left(\frac{1}{w(x_{F_{i}})}\delta_{x_{F_{i}}}\right)=h$
(4.5)

in $L^{\Phi}_{w}(K)$. By (4.4), we have $\|h\|_{\Phi,w}\geq\epsilon$. So,
since

$\|h\|_{\Phi,w}=\sup\left\\{|\langle h,f\rangle|:\,f\in
L^{\Psi}_{w^{-1}}(K),\|f\|_{\Psi,w^{-1}}=1\right\\},$

there is a function $\eta\in L^{\Psi}_{w^{-1}}(K)$ with
$\|\eta\|_{\Psi,w^{-1}}=1$ such that $|\langle
h,\eta\rangle|>\frac{\varepsilon}{2}$.

Since $C_{c}(K)$ is dense in $L^{\Psi}_{w^{-1}}(K)$ (note that
$\Psi\in\Delta_{2}$), there is a function $\psi\in C_{c}(K)$ such that
$\|\psi\|_{\Psi,w^{-1}}<\frac{3}{2}$ and

$|\langle h,\psi\rangle|>\frac{\varepsilon}{2}.$

So, thanks to (4.5), there exists an index $i_{0}$ such that for each index
$i$, if $F_{i_{0}}\subseteq F_{i}$, then

$\left|\left\langle\tilde{T}_{g}\left(\frac{1}{w(x_{F_{i}})}\delta_{x_{F_{i}}}\right),\psi\right\rangle\right|>\frac{\varepsilon}{2}.$
(4.6)

Put $A_{0}:={\rm supp}(\psi)$ and $A_{1}:={\rm supp}(g)$. For some index $i$
we have

$F_{i_{0}}\cup(A_{0}\ast A_{1}^{-})\subseteq F_{i},$

and so,

$\left\langle\tilde{T}_{g}\left(\frac{1}{w(x_{F_{i}})}\delta_{x_{F_{i}}}\right),\psi\right\rangle=\frac{1}{w(x_{F_{i}})}\,\int_{A_{1}}g(t)\psi(x_{F_{i}}t)\,dt=0,$

a contradiction.

Conversely, let us assume that $0\neq g\in C_{c}(K)$ and $F_{g}\in C_{0}(K).$
Then mappings

$Q_{1}:L^{\Psi}(K)\rightarrow L^{\Psi}_{w^{-1}},\,\,\,Q_{1}(f)=fw,\,\,\,(f\in
L^{\Psi}(K))$

and

$Q_{2}:C_{0}^{w}(K)\rightarrow C_{0}(K),\,\,\,Q_{2}(f)=\frac{f}{w},\,\,\,(f\in
C_{0}^{w}(K))$

are isometric isomorphisms. Also, note that the operator $\tilde{T}_{g}$ is
the adjoint of the operator

$Q_{3}:L^{\Psi}_{w^{-1}}(K)\rightarrow C_{0}^{w}(K),\,\,\,Q_{3}(f)=\langle
g,L_{x^{-}}f\rangle,\,\,\,(f\in L^{\Psi}_{w^{-1}}).$

Now, as an application of Schauder’s Theorem [6, Chapter IV] and having
Theorem 4.1 in mind, it is enough to show that the operator

$Q_{g}:L^{\Psi}(K)\rightarrow C_{0}(K),\,\,\,Q_{g}=Q_{2}Q_{3}Q_{1}$

is compact.

To show this, let $\\{f_{n}\\}$ be a sequence $L^{\Psi}(K).$ For each
$n\in\mathbb{N},$ let

$G_{n}:=\overline{\Big{\\{}x\in K:|F_{g}(x)|\geq\frac{1}{n}\Big{\\}}}.$

Then, for each $n,$ we have $G_{n}\subset G_{n+1}$ and since $F_{g}$ vanishes
at infinite, $G_{n}$’s are compact subset of $K$. Also, for each
$n\in\mathbb{N}$ and $x\in K\backslash G_{n}$

$\displaystyle|Q_{g}(f_{n})(x)|$ $\displaystyle=\frac{1}{w(x)}|\langle
g,L_{x^{-}}(wf_{n})\rangle|=\frac{1}{w(x)}|\langle wL_{x}g,f_{n}\rangle|$
$\displaystyle=\frac{2}{w(x)}\|wL_{x}g\|_{\Phi}\|f_{n}\|_{\Psi}=2|F_{g}(x)|\|f_{n}\|_{\Psi}\leq\frac{2}{n}\sup_{m}\|f_{m}\|_{\Psi}.$

Now, similar to the proof of second part of [33, Theorem 3] (also see [9]), by
the diagonal method there is a subsequence of $\\{Q_{g}(f_{n})\\}$ which
converge in $C_{0}(K)$ and this complete the proof.

∎

Acknowledgments. The authors would like to thank Prof. Kenneth A. Ross and
Prof. Ajit Iqbal Singh for their suggestions and comments. Vishvesh Kumar is
supported by FWO Odysseus 1 grant G.0H94.18N: Analysis and Partial
Differential Equations.

## References

  * [1] F. Abtahi, R. Nasr Isfahani and A. Rejali, _On the $L_{p}$-conjecture for locally compact groups_, Arch. Math. (Basel), 89 (2007) 237–242.
  * [2] W.R. Bloom and H. Heyer, Harmonic Analysis of Probability Measures on Hypergroups, De Gruyter, Berlin, 1995.
  * [3] C-C. Chen and C.-H. Chu, _Hypercyclic weighted translations on groups_ , Proc. Amer. Math. Soc., 139 (2011) 2839–2846.
  * [4] C-C. Chen, Chaotic weighted translations on groups, Arch. Math., 97 (2011) 61–68.
  * [5] K.-Y. Chen, On aperiodicity and hypercyclic weighted translation operators, J. Math. Anal. Appl., 462 (2018) 1669–1678.
  * [6] J. B. Conway, A course in Functional analysis, Springer-Verlag, New York, 1985.
  * [7] C.F. Dunkl, The measure algebra of a locally compact hypergroup, Trans. Amer. Math. Soc., 179 (1973), 331–348.
  * [8] C.F. Dunkl and D.E. Ramirez, _A_ family of countable compact $P_{*}$-hypergroups, Trans. Amer. Math. Soc., 202 (1975), 339–356.
  * [9] F. Ghahramani and A.R. Medghalchi, _compact multipliers on weighted hypergroup algebras_ , Math. Proc. Camb. Phil. Soc. 98 (1985), 493-500.
  * [10] E. Hewitt and K.A. Ross, _A_ bstract harmonic analysis Vol. I: Structure of topological groups, integration theory, group representations, (1st edition, (1963)) 2nd edition, Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences], vol. 115, SpringerVerlag, Berlin-New York, (1979).
  * [11] H. Hudzik, A. Kamiska and J. Musielak, _On some Banach algebras given by a modular_ , in: Alfred Haar Memorial Conference, Budapest, Colloquia Mathematica Societatis J anos Bolyai (North Holland, Amsterdam), 49 (1987) 445–463.
  * [12] R. I. Jewett, Spaces with an abstract convolution of measures, Adv. Math., 18 (1975), 1–101.
  * [13] D. Kerr and H. Li, _Ergodic Theory; Independence and Dichotomies_ , Springer International Publishing AG, 2016.
  * [14] V. Kumar, K. A. Ross, A. I. Singh, _Hypergroup deformations of semigroups_ , Semigroup Forum 99(1) (2019) 169-195.
  * [15] V. Kumar, K. A. Ross, A. I. Singh, _An addendum to “Hypergroup deformations of semigroups”_ , Semigroup Forum 99(1) (2019) 196-197.
  * [16] V. Kumar, K. A. Ross, A. I. Singh, _Ramsey theory for hypergroups_ , Semigroup Forum, 100(2) (2020) 482-504.
  * [17] V. Kumar, R. Sarma and N. Sharvan Kumar, _Orlicz spaces on hypergroups_ , Publ. Math. Debrecen, 94 (2019), 31–47.
  * [18] V. Kumar, R. Sarma, _The Hausdorff-Young inequality for Orlicz spaces on compact hypergroups_ , Colloquium Mathematicum 160 (2020) 41-51.
  * [19] V. Kumar, _Orlicz spaces and amenability of hypergroups_ , Bull. Iran. Math. Soc. (2019). https://doi.org/10.1007/s41980-019-00310-7
  * [20] V. Kumar and S.M. Tabatabaie, _Hypercyclic Sequences of weighted translations on hypergroups_ arXiv preprint arXiv:2003.10036, (2020)
  * [21] A. Osançlıol and S. Öztop, _Weighted Orlicz algebras on locally compact groups_ , J. Aust. Math. Soc., 99 (2015), 399–414.
  * [22] S. Öztop and S.M. Tabatabaie, _Weighted Orlicz algebras on hypergroups_ , Filomat 43(9) (2020), 2991–3002.
  * [23] T.S. Quek and L.Y.H. Yap, _Sharpness of Young’s inequality for convolution_ , Math. Scand., 53 (1983), 221–237.
  * [24] M. Rajagopalan, $L^{p}$-conjecture for locally compact groups-I, Trans. Amer. Math. Soc., 125 (1966), 216-222.
  * [25] M. Rajagopalan and W Zelazko, $L^{p}$-conjecture for solvable locally compact groups, J. Indian Math. Soc., 29 (1965), 87-93.
  * [26] M.M. Rao and Z.D. Ren, Theory of Orlicz Spaces, Marcel Dekker, New York, 1991.
  * [27] M.M. Rao and Z.D. Ren, Applications of Orlicz Spaces, Marcel Dekker, New York, 2002.
  * [28] K.A. Ross, Centers of hypergroups, Trans. Amer. Math. Soc. 243 (1978), 251–269.
  * [29] S, Saeki, The $L^{p}$-conjecture and Young’s inequality, Illinois Journal of Mathematics, 34(3) (1990) 614–627.
  * [30] R. Spector, Apercu de la theorie des hypergroups, In: Analyse Harmonique sur les Groups de Lie, 643–673, Lec. Notes Math. Ser., 497, Springer, 1975.
  * [31] S. M. Tabatabaie and A. R. Bagheri Salec, Convolution of Two Weighted Orlicz Spaces on Hypergroups, Revista Colombiana de Matemáticas, 54 (2020) 117–128.
  * [32] S. M. Tabatabaie, A. R. Bagheri Salec and M. Zare Sanjari, A note on Orlicz algebras, Oper. Matrices, 14(1) (2020) 139–144.
  * [33] S. M. Tabatabaie, A. R. Bagheri Salec and M. Zare Sanjari, _Remarks on weighted Orlicz spaces on locally compact groups_ , Math. Inequal. Appl. 23(3) (2020) 1015–1025.
  * [34] S.M. Tabatabaie and F. Haghighifar, _$L^{p}$ -Conjecture on hypergroups_, Sahand Communications in Mathematical Analysis, 12 (2018), 121–130.
  * [35] M. Voit, _Factorization of probability measures on symmetric hypergroups_ , J. Aust. Math. Soc. (Ser. A), 50 (1991), 417–467.


# Arrow: A RISC-V Vector Accelerator for Machine Learning Inference

Imad Al Assir, Mohamad El Iskandarani, Hadi Rayan Al Sandid, and Mazen A. R.
Saghir<EMAIL_ADDRESS><EMAIL_ADDRESS>
Embedded and Reconfigurable Computing Lab
Department of Electrical and Computer Engineering
American University of BeirutBeirutLebanon

(2021)

###### Abstract.

In this paper we present Arrow, a configurable hardware accelerator
architecture that implements a subset of the RISC-V v0.9 vector ISA extension
aimed at edge machine learning inference. Our experimental results show that
an Arrow co-processor can execute a suite of vector and matrix benchmarks
fundamental to machine learning inference 2 – 78$\times$ faster than a scalar
RISC processor while consuming 20% – 99% less energy when implemented in a
Xilinx XC7A200T-1SBG484C FPGA.

Computer architecture, vector accelerator, RISC-V, FPGA, machine learning
inference

††copyright: acmcopyright††journalyear: 2021††doi:
10.1145/1122445.1122456††conference: CARRV 2021: Fifth Workshop on Computer
Architecture Research with RISC-V; June 17, 2021; Virtual††booktitle: CARRV
2021: Fifth Workshop on Computer Architecture Research with RISC-V, June 17,
2021, Virtual††price: 15.00††isbn: 978-1-4503-XXXX-X/18/06

##  1\. Introduction

The proliferation of computationally demanding machine learning applications
comes at a time when traditional approaches to processor performance are
providing diminishing returns. This has renewed interest in domain-specific
architectures and hardware application accelerators as a means for achieving
the required levels of performance (Hennessy and Patterson, 2019). The RISC-V
instruction-set architecture (ISA), with its rich set of standard extensions
and ease of customization, has become the ISA of choice for innovations in
domain-specific processor design. In particular, the RISC-V vector extensions
are a good match for workloads such as machine learning inference that exhibit
high levels of data parallelism. Vector architectures also provide a low-
energy processing alternative for energy-limited applications such as edge
computing.

In this paper we present our Arrow accelerator architecture and report on its
performance and energy consumption on a suite of vector and matrix benchmarks
that are fundamental to machine learning inference. In Section 2 we describe
related work and show how the use of vector architectures has evolved over
time. In Section 3 we describe the Arrow microarchitecture and the various
design decisions that we made. In Section 4 we describe our experimental
methodology and the tools we used to implement our design and evaluate its
performance. In Section 5 we present our experimental results, and in Section
6 we present our conclusions and describe future work.

Figure 1. Arrow Datapath

##  2\. Related Work

The earliest vector processors were developed in the mid 1970’s. They were
used in supercomputers like the Cray-1 (Russell, 1978) to run scientific
applications with high levels of data parallelism. These processors held a
performance advantage over microprocessors of the time due to their faster
clock rates and their architectures, which achieved higher computational and
memory throughput (Espasa et al., 1998).

By the early 1990’s, fast and inexpensive “killer micros” like the DEC Alpha
21164 (McLellan, 1993) became an attractive alternative for building scalable
parallel computer systems. These ultimately displaced vector machines in high-
performance computing systems (Espasa et al., 1998).

The early 1990’s also saw increased demand for efficient architectures aimed
at data-intensive digital signal processing, graphics, and multimedia
applications. Microprocessor manufacturers responded by extending their ISAs
to support short-vector and SIMD instructions. ISA extensions such as Intel’s
MMX/SSE and ARM’s Neon are still in use, but some researchers argue that they
lead to instruction-set bloat and increase processor complexity (Patterson and
Waterman, 2017).

From the mid 1990’s to the early 2000’s, academic interest in single-chip
vector processors led to the design of the Berkeley T0 and VIRAM processors
(Asanovic, 1998; Kozyrakis and Patterson, 2003). The T0 processor demonstrated
the viability of integrating a scalar MIPS processor with a heterogeneous,
chained, multi-lane vector co-processor. The VIRAM processor demonstrated the
superiority of vector architectures over superscalar and VLIW architectures
for data-intensive embedded applications. Its vector co-processor was designed
around homogeneous, non-chained, vector lanes and distributed memory banks.

The late 2000’s also saw academic interest in using FPGAs to implement
scalable soft vector processors (SVPs) inspired by the VIRAM architecture.
VESPA (Yiannacouras et al., 2008) was a MIPS-based SVP with up to 16
homogeneous vector lanes. VESPA was later enhanced to support heterogeneous
vector lanes, chaining, and a banked vector register file (Yiannacouras et
al., 2009). VIPERS (Yu et al., 2008) was another VIRAM-inspired SVP that was
designed as a general-purpose accelerator. It included a configurable multi-
lane datapath and memory interface. Later SVPs introduced new features like
using a scratchpad memory as a vector register file (Chou et al., 2011), and
implementing 2D and 3D vector instructions (Severance and Lemieux, 2012). Most
of these features are incorporated in at least one commercial SVP (Severance
and Lemieux, 2013).

The emergence of the RISC-V ISA in 2010 coincided with the proliferation of
deep machine learning algorithms and renewed interest in accelerating machine
learning training and inference using domain-specific architectures.
Berkeley’s Hwacha vector architecture (Lee, 2016) inspired the development of
a standard RISC-V vector extension (RVV) (RISC-V, 2021a). Today, a number of
commercial products and academic projects are based on implementations of the
RVV ISA extension.

The Andes NX27V and SiFive VIS7 (Demler, 2020; Jani, 2021) are commercial
processors based on the RVV v1.0 extension. They can operate on 512-bit
vectors and are aimed at data-intensive applications in telecommunications,
image/video processing, and machine learning. ETH Zurich’s Ara is a vector co-
processor for the 64-bit Ariane RISC-V processor that is based on the RVV v0.5
ISA extension (Cavalcante et al., 2020). It is a scalable architecture that
was implemented in 22 nm FD-SOI technology and could operate at 1 GHz+. Four
instances of the co-processor were implemented with 2, 4, 8, and 16 lanes,
respectively. Performance results demonstrated the efficiency of the
architecture on data-parallel workloads. Ara’s support for double-precision
floating-point operations makes it well suited for HPC-class data-parallel
applications. The University of Southampton’s AVA is a RVV co-processor for
the OpenHW Group CV32E40P that is optimized for machine learning inference
(Johns et al., 2021). It implements a subset of the RVV v0.8 ISA extension,
uses 32, 32-bit vector registers, and can operate on 8-, 16-, or 32-bit vector
elements in SIMD fashion. The AVA co-processor is implemented in Verilog and
was validated through RTL and instruction set simulation. An earlier version
of the co-processor targeting embedded applications was implemented in an
Intel Cyclone V FPGA and could operate at 50 MHz (Johns and Kazmierski, 2020).
Finally, Sapienza University of Rome’s Klessydra-T13 (Sordillo et al., 2021)
is a RISC-V multi-threaded processor with a configurable vector unit. It uses
custom vector instructions that replicate some of the basic operations of the
standard RVV extension and implement specialized functions for machine
learning workloads.

##  3\. Arrow Architecture

Arrow is a configurable vector co-processor that implements a subset of the
RVV v0.9 ISA extension. Some of its architectural parameters can be configured
at design time including the number of lanes, maximum vector length ($VLEN$),
and maximum vector element width ($ELEN$). In this paper we report on a dual-
lane Arrow architecture with $VLEN$ = 256 bits and $ELEN$ = 64 bits. The
current implementation does not support chaining.

###  3.1. Arrow RISC-V Vector ISA Subset

The RISC-V vector extension provides a rich set of vector instructions. Arrow
implements a subset of these instructions that we believe can be useful in
edge machine learning inference applications. These include unit-stride and
strided memory access; single-width integer addition, subtraction,
multiplication, and division; bitwise logic and shift; and integer compare,
min/max, merge, and move operations.

###  3.2. Pipeline Organization

Figure 1 shows Arrow’s datapath. It is a single-issue, dual-lane vector
accelerator that can execute two independent vector instructions in parallel.
It is pipelined to increase execution throughput, and its pipeline stages
include decode, operand fetch, execute or memory access, and write-back.

Instructions are dispatched from a scalar host processor and are first
decoded. Different instruction fields are extracted and fed into the control
unit, which generates the appropriate control signals. An offset generator
calculates the vector register offsets needed to access the corresponding
vector elements. These offsets are sent to the vector register file banks to
read the required data. Operands are selected based on the control signals,
and depending on the instruction type, the required fields are fed to the ALU,
move block, or memory unit. For vector load instructions, the appropriate
vector elements are passed to the memory interface, and for arithmetic or
logical instructions, results are written back to the register file. The move
block executes regular and masked merge and move instructions.

###  3.3. Decoder and Controller

The decoder is a combinational circuit that decomposes the 32-bit instruction
it receives from the scalar processor into the appropriate fields needed by
other datapath components. The controller uses these fields to generate the
appropriate control signals for each vector lane. It also passes control
signals and dispatches instructions for execution in the appropriate lane
based on the destination vector register. For our dual-lane architecture, if
the destination register corresponds to registers 0 to 15 the vector
instruction is executed in the first lane. Similarly, if the destination
register corresponds to registers 16 to 31 the instruction is executed in the
second lane. This lane-dispatching scheme simplifies our design and eliminates
the need for complex arbitration hardware. It also supports wider lane
implementations, but requires the compiler or assembly programmer to expose
vector instruction parallelism through register allocation in a manner similar
to statically scheduled superscalar processors. Once generated, control
signals are held constant for the duration of a vector instruction execution.

###  3.4. Vector Register File

Arrow’s register file is based on a banked architecture where each bank is
associated with a different lane. In the current implementation, the first
bank contains registers 0 to 15 while the second bank contains registers 16 to
31. Each bank has two read ports and one write port. This enables both banks
to support the two lanes simultaneously.

Within Arrow, vector data is processed in $ELEN$-bit words. An offset
generator associated with each register bank is used to generate the byte
offsets for accessing the corresponding $ELEN$-bit words from a vector
register. The offset generator also generates a write-enable selector mask
that specifies which bytes within an $ELEN$-bit word should be updated when a
result is written back to a vector register. The number of bytes associated
with a vector element is determined by the $SEW$ parameter, and
$\lceil\text{$VLEN$/$ELEN$}\rceil$ offsets are generated for each vector
register. Figure 2 shows how the write-enable selector bits can be used to
mask the write back to arbitrary bytes in an $ELEN$-bit word.

Figure 2. The WriteEnable bits mapping

###  3.5. SIMD ALU

The Arrow ALU operates on $ELEN$-bit words regardless of the actual standard
element width ($SEW$) being used. When $SEW$ is less than $ELEN$, the ALU
processes multiple vector elements simultaneously in SIMD fashion. Figure 3
shows the Arrow SIMD ALU, which performs basic arithmetic and logic
operations. Depending on the actual size of a vector element ($SEW$),
multiplexers (denoted by M in the Figure) ensure proper carry chain
propagation.

Figure 3. SIMD ALU Design

###  3.6. Memory Unit

The RVV ISA extension supports different vector memory addressing modes
including unit stride, strided, and indexed access. The Arrow memory unit is
designed to support these addressing modes by generating corresponding memory
addresses. When executing a vector memory instruction, the base address is
received from the scalar processor through the rs1_data port. The memory unit
then generates the corresponding effective memory addresses and burst length.
The latter is used to determine the number of $ELEN$-bit words that need to be
transferred from memory, thus allowing efficient multi-beat bursts. For vector
load instructions, the memory unit also generates the WriteEnMemSel bit mask
to indicate which vector element bytes should be written in the vector
register file. Currently, both unit-stride and strided accesses are fully
supported, but vector indexed/gather-scatter access is still in development.

Figure 4. FPGA system block diagram. System bus is $ELEN$=64-bits wide.

###  3.7. Memory Bus Interface

Because we are using Xilinx design tools, our Arrow system architecture is
based on the ARM AMBA AXI bus interface and AXI IPs (ARM, [n.d.]). Figure 4
shows a high-level view of the memory interface, which includes the Arrow
memory unit, Arrow AXI master interface, Xilinx Memory Interface Generator
(MIG) IP block, and DDR3 memory. The DDR3 memory provides a shared address
space for both the MicroBlaze and Arrow processors. Our system does not
currently use any cache or scratchpad memories.

Within Arrow, the memory unit generates the addresses of required $ELEN$-bit
memory words. It also determines the number of memory words that need to be
transferred – we refer to these as the number of beats or the burst length. In
our current implementation, all memory accesses are $ELEN$=64 bits wide
regardless of whether the entire data are needed or not. This simplifies the
memory interface and avoids narrow transactions that are smaller than the AXI
bus width. For strided vector load instructions, the memory unit also
generates the masks that enable the writing of specific bytes to the vector
register file. Arrow’s AXI master interface is shown as the Memory Requests IP
block in Figure 4. It translates an Arrow memory request to an AXI bus
transaction. The MIG IP block is external to the Arrow architecture. It serves
as a DDR3 memory controller that converts Arrow memory transactions over the
AXI bus to DDR3 memory transactions. It also provides the MicroBlaze processor
with access to DDR3 memory.

The Arrow memory interface is designed to be system-bus independent. However,
in the current implementation, some limitations of the MIG interface can
impact performance. For example, the MIG interface is limited to 64-bit
transfers. Although this matches Arrow’s internal $ELEN$-bit word length, the
MIG interface does not support concurrent or interleaved AXI memory transfers.
This limits vector memory transfers on the Arrow side to a single lane, which
can increase latency and reduce throughput. On the other hand, because the
16-bit MIG/DDR3 interface can operate at 400 MHz, roughly four times the speed
of the Arrow core, we can read or write an $ELEN$-bit word every AXI bus
cycle.

##  4\. Experimental Methodology

In this section we describe our experimental methodology, which includes our
FPGA prototype, the code development tools we used, and the fundamental
machine learning vector and matrix benchmarks we used to evaluate performance.

###  4.1. FPGA Prototype

After developing the Arrow microarchitecture in VHDL, we synthesized and
implemented our design in the Xilinx XC7A200T-1SBG484C FPGA used in the Nexys
Video board (Digilent, [n.d.]). We also used the Xilinx Vivado 2019.1 Design
Suite for synthesis and implementation.

Figure 4 shows our FPGA system implementation. The Arrow datapath is packaged
as an AXI IP to enable communication with the MicroBlaze processor and memory
over the AXI bus. We chose the Xilinx MicroBlaze v11.0 (Xilinx, 2020) as our
scalar processor because of its compatibility with the Vivado 2019.1 design
suite and AXI bus interface. This enabled us to run C test code and send Arrow
instructions through the AXI bus. We also validated Arrow’s internal signals
using the Integrated Logic Analyzer (ILA) IP block, which is available through
the Vivado Design Suite. We also developed a standalone IP block that
translates Arrow memory requests to AXI bus transactions to ensure the Arrow
IP block remained as generic and bus-independent as possible. The DDR3 memory
and MIG interface are shared by both the MicroBlaze and Arrow processors.

###  4.2. Code Development Tools

To help us cross-compile benchmark programs written in C/C++, we used the
RISC-V LLVM/Clang toolchain from the European Processor Initiative (EPI)
project (EPI, 2021), which supported the RVV v0.9 ISA extension specification.
Although LLVM/Clang supports the use of RVV instrinsics, we used assembly code
inlining to have greater control over our code. We then packaged the inlined
code in functions that we used in our benchmarks.

To validate the functionality of our benchmarks, we used the open-source Spike
RISC-V ISA simulator (RISC-V, 2021b). In addition to supporting the base
RISC-V instruction set, Spike supports most of the standard ISA extensions
including the ”V” vector extension. However, because Spike is not cycle-
accurate (Herdt et al., 2020), we developed our own cycle count models to
evaluate and compare the execution performance of both the scalar and vector
benchmarks. To validate our cycle count model, we compared its cycle counts
for the scalar benchmark to those produced by Spike and found them to be
within 7%.

###  4.3. Benchmarks

To evaluate our design, we used a suite of vector and matrix benchmarks from
the University of Southampton (of Southampton, 2021). We chose these
benchmarks because they are widely used in machine learning inference
algorithms, and because they exhibit high levels of data parallelism. The
benchmarks include vector addition, multiplication, max reduction, dot
product, and rectified linear unit (ReLu). They also include matrix
multiplication, addition, max pool, and 2D convolution.

The original benchmark suite was developed for the RVV v0.8 ISA extension
specification. To support the RVV v0.9 specification, we made minor
adjustments to its inlined assembly code functions. We then compiled the
applications using LLVM/Clang and simulated them on Spike for functional
validation. Finally, we compared the scalar and vector execution times by
applying our cycle count models. We also calculated the energy used by each
benchmark by multiplying the power consumed, which we obtained from the FPGA
synthesis reports, by the execution time. We calculated a benchmark’s
execution time by multiplying its cycle count by the Arrow clock cycle time.
To study the impact of data size on performance and energy consumption, we
also ran our benchmarks with small, medium and large data sizes. Table 1
describes our different data size profiles.

| Small Data | Medium Data | Large Data
---|---|---|---
| Profile | Profile | Profile
Vector Length | 64 elements | 512 elements | 4096 elements
Matrix Size | $64\times 64$ | $512\times 512$ | $4096\times 4096$
2D Convolution |  |  |
Data Size | $1024\times 1024$ | $1024\times 1024$ | $1024\times 1024$
Kernel Size | $3\times 3$ | $4\times 4$ | $5\times 5$
Channels | 1 | 1 | 1
Batch Size | 3 | 4 | 5
Table 1. Benchmark Parameters

##  5\. Results

In this section, we report on the results of implementing the Arrow system in
a FPGA device. We also report on the performance and energy of the Arrow
accelerator on vector and matrix benchmarks.

###  5.1. FPGA Resource Utilization

To evaluate our design, we synthesized and implemented two systems: one with a
single MicroBlaze processor and another with both MicroBlaze and Arrow
processors. Both systems ran at 100 MHz. Table 2 summarizes our post-
implementation results, which demonstrate the minor increase in LUT and FF
utilization, and power consumption, due to the Arrow accelerator. And although
we operated Arrow at 100 MHz, its maximum clock speed is 112 MHz.

| Utilization | Power
---|---|---
| LUT | FF | BRAM | (W)
MicroBlaze | 2241/133800 (1.7%) | 1495/267600 | 32/365 | 0.270
MicroBlaze+Arrow | 2715/133800 (2.0%) | 2268/267600 | 32/365 | 0.297
Table 2. FPGA Implementation Results

###  5.2. Benchmark Performance

| Small Data Profile | Medium Data Profile | Large Data Profile
---|---|---|---
Operation | Scalar (cycles) | Vector (cycles) | Speedup | Scalar (cycles) | Vector (cycles) | Speedup | Scalar (cycles) | Vector (cycles) | Speedup
Vector Addition | $3.4\times{}10^{3}$ | $5.0\times{}10^{1}$ | $69.6\times$ | $2.7\times{}10^{4}$ | $3.5\times{}10^{2}$ | $77.3\times$ | $2.2\times{}10^{5}$ | $2.8\times{}10^{3}$ | $78.4\times$
Vector Multiplication | $3.5\times{}10^{3}$ | $5.0\times{}10^{1}$ | $69.5\times$ | $2.8\times{}10^{4}$ | $3.6\times{}10^{2}$ | $77.3\times$ | $2.2\times{}10^{5}$ | $2.8\times{}10^{3}$ | $78.3\times$
Vector Dot Product | $1.6\times{}10^{3}$ | $6.2\times{}10^{1}$ | $25.2\times$ | $1.2\times{}10^{4}$ | $3.8\times{}10^{2}$ | $32.1\times$ | $9.8\times{}10^{4}$ | $3.0\times{}10^{3}$ | $33.2\times$
Vector Max Reduction | $1.4\times{}10^{3}$ | $4.2\times{}10^{1}$ | $32.6\times$ | $1.1\times{}10^{4}$ | $2.2\times{}10^{2}$ | $48.1\times$ | $8.6\times{}10^{4}$ | $1.7\times{}10^{3}$ | $51.2\times$
Vector ReLu | $1.4\times{}10^{3}$ | $4.2\times{}10^{1}$ | $34.0\times$ | $1.1\times{}10^{4}$ | $2.9\times{}10^{2}$ | $38.4\times$ | $9.0\times{}10^{4}$ | $2.3\times{}10^{3}$ | $39.0\times$
Matrix Addition | $2.2\times{}10^{4}$ | $5.1\times{}10^{3}$ | $43.8\times$ | $1.4\times{}10^{7}$ | $2.0\times{}10^{5}$ | $71.6\times$ | $9.1\times{}10^{8}$ | $1.2\times{}10^{7}$ | $77.6\times$
Matrix Multiplication | $1.2\times{}10^{7}$ | $5.1\times{}10^{5}$ | $24.1\times$ | $6.1\times{}10^{9}$ | $1.2\times{}10^{8}$ | $50.4\times$ | $3.1\times{}10^{12}$ | $5.3\times{}10^{10}$ | $58.6\times$
Matrix Max Pool | $3.7\times{}10^{5}$ | $7.0\times{}10^{4}$ | $5.4\times$ | $2.4\times{}10^{7}$ | $4.4\times{}10^{6}$ | $5.4\times$ | $1.5\times{}10^{9}$ | $2.8\times{}10^{8}$ | $5.4\times$
2D Convolution | $1.4\times{}10^{9}$ | $7.3\times{}10^{8}$ | $1.9\times$ | $1.9\times{}10^{9}$ | $1.2\times{}10^{9}$ | $1.6\times$ | $2.4\times{}10^{9}$ | $1.8\times{}10^{9}$ | $1.4\times$

Table 3. Cycle-Count Performance Analysis

Table 3 shows the cycle counts for the scalar and vectorized benchmarks for
different data size profiles. The Table also shows the speedup factors of
vectorized benchmarks relative to scalar benchmarks. Our results show that the
vector benchmarks run 25 – 78$\times$ faster; the matrix benchmarks run 5 –
78$\times$ faster; and 2D convolution runs only 1.4 – 1.9$\times$ faster. The
relatively low performance of 2D convolution and, to a lesser extent, Matrix
Max Pool is mainly due to their highly repetitive use of scalar arithmetic
operations to manage data pointers. This greatly limits performance despite
both benchmarks using optimized vector reduction and dot product functions,
respectively. We believe that strided vector memory operations can improve the
performance of both applications, and we are currently working on further
optimizing these benchmarks. It is also worth noting that vectorized
benchmarks with larger data profiles achieve better performance than those
with smaller data profiles. This is mainly due to vector overhead instructions
(e.g. setting the vector length) having a lower impact on execution time when
vector instructions operate on longer vectors.

| Small Data Profile | Medium Data Profile | Large Data Profile
---|---|---|---
Operation | Scalar (J) | Vector (J) | Ratio | Scalar (J) | Vector (J) | Ratio | Scalar (J) | Vector (J) | Ratio
Vector Addition | $8.6\times{}10^{-6}$ | $1.4\times{}10^{-7}$ | 1.6% | $6.8\times{}10^{-5}$ | $9.7\times{}10^{-7}$ | 1.4% | $5.44\times{}10^{-4}$ | $7.6\times{}10^{-6}$ | 1.4%
Vector Multiplication | $8.5\times{}10^{-6}$ | $1.3\times{}10^{-7}$ | 1.6% | $6.9\times{}10^{-5}$ | $9.6\times{}10^{-7}$ | 1.4% | $5.3\times{}10^{-4}$ | $7.5\times{}10^{-6}$ | 1.4%
Vector Dot Product | $3.8\times{}10^{-6}$ | $1.7\times{}10^{-7}$ | 4.4% | $3.0\times{}10^{-5}$ | $1.0\times{}10^{-6}$ | 3.4% | $2.4\times{}10^{-4}$ | $8.0\times{}10^{-6}$ | 3.3%
Vector Max Reduction | $3.4\times{}10^{-6}$ | $1.1\times{}10^{-7}$ | 3.4% | $2.6\times{}10^{-5}$ | $6.1\times{}10^{-7}$ | 2.3% | $2.1\times{}10^{-4}$ | $4.5\times{}10^{-6}$ | 2.1%
Vector ReLu | $3.5\times{}10^{-6}$ | $1.1\times{}10^{-7}$ | 3.2% | $2.8\times{}10^{-5}$ | $7.9\times{}10^{-7}$ | 2.9% | $2.2\times{}10^{-4}$ | $6.2\times{}10^{-6}$ | 2.8%
Matrix Addition | $5.52\times{}10^{-4}$ | $1.4\times{}10^{-5}$ | 2.5% | $3.5\times{}10^{-2}$ | $5.4\times{}10^{-4}$ | 1.5% | $2.2\times{}10^{0}$ | $3.2\times{}10^{-2}$ | 1.4%
Matrix Multiplication | $3.0\times{}10^{-2}$ | $1.4\times{}10^{-3}$ | 4.6% | $1.5\times{}10^{1}$ | $3.3\times{}10^{-1}$ | 2.2% | $7.6\times{}10^{3}$ | $1.4\times{}10^{2}$ | 1.9%
Matrix Max Pool | $9.2\times{}10^{-4}$ | $1.88\times{}10^{-4}$ | 20.5% | $5.9\times{}10^{-2}$ | $1.2\times{}10^{-2}$ | 20.4% | $3.8\times{}10^{0}$ | $7.65\times{}10^{-1}$ | 20.4%
2D Convolution | $3.4\times{}10^{0}$ | $1.9\times{}10^{0}$ | 57.3% | $4.5\times{}10^{0}$ | $3.2\times{}10^{0}$ | 70.4% | $6.0\times{}10^{0}$ | $6.7\times{}10^{0}$ | 79.9%

Table 4. Energy Consumption Analysis

Table 4 shows the energy consumed by the scalar and vectorized benchmarks for
different data size profiles. The Table also shows the ratio of energy
consumed by vectorized benchmarks relative to corresponding scalar benchmarks.
Our results show that the Arrow accelerator achieves significant energy
reductions relative to a scalar processor. This is mainly due to the
significant reduction in execution time, which directly impacts energy
consumption. Comparing the energy consumed by the vectorized benchmarks to
that consumed by the scalar benchmarks we find that the vector benchmarks
consume 96% to 99% less energy; the matrix benchmarks consume 80% to 99% less
energy; and 2D convolution consumes 20% to 43% less energy. While still
significant, we believe that further optimizations to 2D convolution and
Matrix Max Pool will result in further reductions in energy consumption.

These results highlight the performance and energy advantages of the RVV-based
Arrow architecture, and validate its suitability for edge machine learning
inference applications.

##  6\. Conclusions and Future Work

In this paper we described the architecture of our RVV-based Arrow accelerator
and evaluated its performance and energy consumption. Our results confirm its
suitability for edge machine learning inference applications. We plan to
extend this work by evaluating the Arrow accelerator when it is more tightly
integrated into the datapath of a RISC-V processor like the SweRV EH1. We also
plan to develop a gem5 simulation model to perform a more thorough performance
study of the Arrow accelerator using the MLPerf and TinyMLPerf benchmark
suites. Finally, we plan to expand the Arrow architecture to support ML-
friendly arithmetic operations and data types like bfloat16 and posits.

## References

  * (1)
  * ARM ([n.d.]) ARM. [n.d.].  _AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite_.
  * Asanovic (1998) Krste Asanovic. 1998\.  _Vector Microprocessors_.  Ph.D. Dissertation. University of California, Berkeley.
  * Cavalcante et al. (2020) Matheus Cavalcante, Fabian Schuiki, Florian Zaruba, Michael Schaffner, and Luca Benini. 2020\.  Ara: A 1-GHz+ Scalable and Energy-Efficient RISC-V Vector Processor With Multiprecision Floating-Point Support in 22-nm FD-SOI.  _IEEE Transactions on Very Large Scale Integration (VLSI) Systems_ 28, 2 (2020), 530–543.  https://doi.org/10.1109/TVLSI.2019.2950087
  * Chou et al. (2011) Christopher H. Chou, Aaron Severance, Alex D. Brant, Zhiduo Liu, Saurabh Sant, and Guy G.F. Lemieux. 2011\.  VEGAS: Soft Vector Processor with Scratchpad Memory. In _Proceedings of the 19th ACM/SIGDA International Symposium on Field Programmable Gate Arrays_ (Monterey, CA, USA) _(FPGA ’11)_. Association for Computing Machinery, New York, NY, USA, 15–24.  https://doi.org/10.1145/1950413.1950420
  * Demler (2020) Mike Demler. 2020\.  Andes Plots RISC-V Vector Heading: NX27V CPU Supports up to 512-bit Operations.  _Microprocessor Report_ May (2020), 4.
  * Digilent ([n.d.]) Digilent. [n.d.].  Nexys Video Reference Manual.  [Online].  https://reference.digilentinc.com/reference/programmable-logic/nexys-video/reference-manual
  * EPI (2021) EPI. 2021.  LLVM-based Compiler.  [Online].  https://repo.hca.bsc.es/gitlab/rferrer/llvm-epi
  * Espasa et al. (1998) Roger Espasa, Mateo Valero, and James E. Smith. 1998\.  Vector Architectures: Past, Present and Future. In _Proceedings of the 12th International Conference on Supercomputing_ (Melbourne, Australia) _(ICS ’98)_. Association for Computing Machinery, New York, NY, USA, 425–432.  https://doi.org/10.1145/277830.277935
  * Hennessy and Patterson (2019) John L. Hennessy and David A. Patterson. 2019.  A New Golden Age for Computer Architecture.  _Commun. ACM_ 62, 2 (Jan. 2019), 48–60.  https://doi.org/10.1145/3282307
  * Herdt et al. (2020) Vladimir Herdt, Daniel Große, and Rolf Drechsler. 2020\.  Fast and Accurate Performance Evaluation for RISC-V using Virtual Prototypes*. In _2020 Design, Automation Test in Europe Conference Exhibition (DATE)_. 618–621.  https://doi.org/10.23919/DATE48585.2020.9116522
  * Jani (2021) Aakash Jani. 2021\.  SiFive Brings Vectors to S-Series.  _Microprocessor Report_ January (2021), 4.
  * Johns et al. (2021) M. Johns, H. Cooper, P. Alexander, A. Bhattacharya, B. Theobald, and J. Holden. 2021\.  Expanding a RISC-V Processor with Vector Instructions for Accelerating Machine Learning.  https://youtu.be/t0Fpy4TzLUE
  * Johns and Kazmierski (2020) Matthew Johns and Tom J. Kazmierski. 2020.  A Minimal RISC-V Vector Processor for Embedded Systems. In _2020 Forum for Specification and Design Languages (FDL)_. 1–4.  https://doi.org/10.1109/FDL50818.2020.9232940
  * Kozyrakis and Patterson (2003) C.E. Kozyrakis and D.A. Patterson. 2003.  Scalable, vector processors for embedded systems.  _IEEE Micro_ 23, 6 (2003), 36–45.  https://doi.org/10.1109/MM.2003.1261385
  * Lee (2016) Yensup Lee. 2016\.  _Decoupled Vector-Fetch Architecture with a Scalarizing Compiler_.  Ph.D. Dissertation. University of California, Berkeley.
  * McLellan (1993) E. McLellan. 1993\.  The Alpha AXP architecture and 21064 processor.  _IEEE Micro_ 13, 3 (1993), 36–47.  https://doi.org/10.1109/40.216747
  * of Southampton (2021) University of Southampton. 2021\.  AI-Vector-Accelerator Benchmarks.  [Online].  https://github.com/AI-Vector-Accelerator/NN_software
  * Patterson and Waterman (2017) David Patterson and Andrew Waterman. 2017.  SIMD Instructions Considered Harmful.  https://www.sigarch.org/simd-instructions-considered-harmful
  * RISC-V (2021a) RISC-V. 2021a.  RISC-V Vector Extension, v0.9.  [Online].  https://github.com/riscv/riscv-v-spec/releases/tag/0.9
  * RISC-V (2021b) RISC-V. 2021b.  Spike, a RISC-V ISA Simulator.  [Online].  https://github.com/riscv/riscv-isa-sim
  * Russell (1978) Richard M. Russell. 1978\.  The CRAY-1 Computer System.  _Commun. ACM_ 21, 1 (Jan. 1978), 63–72.  https://doi.org/10.1145/359327.359336
  * Severance and Lemieux (2012) Aaron Severance and Guy Lemieux. 2012.  VENICE: A compact vector processor for FPGA applications. In _2012 International Conference on Field-Programmable Technology_. 261–268.  https://doi.org/10.1109/FPT.2012.6412146
  * Severance and Lemieux (2013) Aaron Severance and Guy G. F. Lemieux. 2013.  Embedded Supercomputing in FPGAs with the VectorBlox MXP Matrix Processor. In _Proceedings of the Ninth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis_ (Montreal, Quebec, Canada) _(CODES+ISSS ’13)_. IEEE Press, Article 6, 10 pages.
  * Sordillo et al. (2021) S. Sordillo, A. Cheikh, A. Mastrandrea, F. Menichelli, and M. Olivieri. 2021.  Customizable Vector Acceleration in Extreme-Edge Computing: A RISC-V Software/Hardware Architecture Study on VGG-16 Implementation.  _Electronics_ 10, 518 (2021), 21.  https://doi.org/10.3390/electronics10040518
  * Xilinx (2020) Xilinx. 2020.  Xilinx MicroBlaze Processor Reference Guide.  [Online].  https://www.xilinx.com/support/documentation/sw_manuals/xilinx2018_2/ug984-vivado-microblaze-ref.pdf
  * Yiannacouras et al. (2008) Peter Yiannacouras, J. Gregory Steffan, and Jonathan Rose. 2008\.  Vespa: Portable, scalable, and flexible fpga-based vector processors. In _In CASES’08: International Conference on Compilers, Architecture and Synthesis for Embedded Systems_.
  * Yiannacouras et al. (2009) Peter Yiannacouras, J. Gregory Steffan, and Jonathan Rose. 2009\.  Fine-Grain Performance Scaling of Soft Vector Processors. In _Proceedings of the 2009 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems_ (Grenoble, France) _(CASES ’09)_. Association for Computing Machinery, New York, NY, USA, 97–106.  https://doi.org/10.1145/1629395.1629411
  * Yu et al. (2008) Jason Yu, Guy Lemieux, and Christpher Eagleston. 2008\.  Vector Processing as a Soft-Core CPU Accelerator. In _Proceedings of the 16th International ACM/SIGDA Symposium on Field Programmable Gate Arrays_ (Monterey, California, USA) _(FPGA ’08)_. Association for Computing Machinery, New York, NY, USA, 222–232.  https://doi.org/10.1145/1344671.1344704