Philippe Moreau

Vincent Mauchamp

Frédéric Pailloux

Florent Boucher

come

1 Fast determination of phases in Li x FePO 4 using low losses in electron energy-loss spectroscopy P. Moreau 1, a) , V. Mauchamp 2 , F. Pailloux 2 and F. Boucher 1 1 Institut des Matériaux Jean Rouxel (IMN), Université de Nantes, CNRS, 2, rue de la Houssinière, BP32229, 44322 Nantes Cedex 3, France 2 PhyMAT (ex LMP) SP2MI -Boulevard 3, Téléport 2 -BP 30179 -86962 Futuroscope, Chasseneuil Cedex, France Experimental valence electron energy loss spectra, obtained on different phases of Li x FePO 4 are analyzed with first principles calculations based on density functional theory. In the 4-7 eV range, a large peak is identified in the FePO 4 spectrum, but is absent in LiFePO 4 , which allows the easy formation of energy filtered images. The intensity of this peak, non sensitive to the precise orientation of the crystal, is large enough to rapidly determine existing phases in the sample and permit future dynamical studies. a) Electronic mail: Philippe.Moreau@cnrs-imn.fr Rechargeable lithium batteries are of considerable technological interest in the field of portable electronic devices and will soon be the standard electrical storage system in hybrid or all-electric vehicles. 1 Among positive electrode materials, lithium iron phosphate LiFePO 4 is one of the most promising. It is cheap, non toxic and shows excellent cycling properties when particles are coated with a carbon layer. Even if this coating and the utilization of nanosized particles clearly compensates for its intrinsic poor electronic conductivity, the precise microscopic processes at work inside the crystals are still being debated. [2][3][4][5] Given the crucial role of defects, interfaces, surfaces and local amorphous regions, the relevant phenomena are at the nanometer scale. They also involve very short time scales, due to the metastable nature of some phases and the remarkable high power performance of this material. In order to get a better insight into the electrochemical process, a local and fast method of analysis is thus necessary. In positive lithium battery materials, electron diffraction or high resolution transmission electron microscopy (HRTEM) have been used to determine local structures. 4, 6- 10 Although these techniques can meet the spatial resolution requirement, they both have very time consuming limitations: electron diffraction necessitates the orientation of each crystal and HRTEM further demands supporting image simulation. Local phases can also be obtained from core losses in electron energy-loss spectroscopy (EELS). [START_REF] Graetz | [END_REF]12 The Fe L 2,3 edge has been used to characterize intercalated/deintercalated phases in Li x FePO 4 grains, 2,13 and analyze the phase front. 2 Nevertheless, using a Hartree-Slater model, the cross section for the Fe L 2,3 edge (situated around 708 eV) can be shown to be 30 times smaller than that of the Fe M 2,3 edge (around 54 eV). 14 Miao et al. published a study on that precise edge but the energy resolution was too poor to give any insight on the chemical process. 13 Valence EELS (VEELS), hence losses below 40 eV, is even more interesting since its intensity is approximately 10 times more intense than that of the M 2,3 edge. Such intensity could help to meet the time scale criteria in order to both perform kinetic studies and limit electron beam damage.

In this letter, after comparing FePO 4 and LiFePO 4 VEELS spectra with calculations, we show that a particular peak, not sensitive to the precise orientation of the sample, allows the determination of local compositions in Li x FePO 4 samples. This same peak is demonstrated to be useful in the fast recording of phase sensitive energy filtered images, a prerequisite to gain insight into the dynamics of the intercalation process.

In order to identify the most relevant features in FePO 4 (FP) and LiFePO 4 (LFP) VEELS spectra, experiments are compared to first principle calculations in Fig. 1. Calculations were performed with WIEN2k, 15 a full potential code, based on the density functional theory (DFT). In order to take into account local magnetic moments on Fe II (LFP) and Fe III (FP) sites, spin polarized calculations were necessary. An antiferromagnetic (AF) order (AF along the channel b direction but ferromagnetic in the two others) was introduced together with the use of GGA+U approximation, considering a mean U eff value (4.3 eV) for both LFP and FP, as previously done by Zhou et al. [START_REF] Zhou | [END_REF] Dielectric functions were obtained in the optic approximation (q = 0). 17 Atomic coordinates were taken from Delacourt et al. 18 and details of the calculations are given as supplementary materials. [START_REF]EPAPS Document No. for details of LiFePO 4[END_REF] Analyzed samples were synthesized by the nitrate method, [START_REF] Delacourt | [END_REF] so that no carbon coating, which could modify intensities in the VEELS region, was present. Chemically delithiated compounds were obtained by using proper amounts of NO 2 BF 4 . 2 VEELS spectra were obtained on a HF2000 Hitachi cold field emission gun TEM operated at 100 kV and at liquid nitrogen temperature to avoid beam damages. The probe size was around 60 nm in diameter, in order to avoid once again beam damages, which are especially large in the case of FP. A modified Gatan 666 spectrometer was used giving a 0.65 eV energy resolution at a 0.05eV/pixel dispersion. 21 VEELS were acquired in less than 0.2 s total time. Experimental spectra were gain, dark count, zero loss (ZL) and plural scattering corrected using the PEELS program. 22 By applying the same method as previously published, a common intensity scale (eV -1 ) is obtained for both experimental and theoretical spectra. 23,24 Scissors operators corresponding to upwards energy shifts of 1 eV and 2 eV were used for FP and LFP, respectively. 25 For both FP and LFP, experimental and calculated spectra are in very good agreement. Most peaks occur at the same energy with a comparable relative intensity. This proves both the validity of discussions based on theoretical considerations and the actual acquisition of spectra free of beam damages. The main difference between FP and LFP spectra is the 3-eV wide peak situated around 6 eV. The study of total, partial and joint densities of states for FP and LFP are particularly useful to explain the origin of this "6 eV peak". 26 In fact, this peak is also present in LFP but is hidden in the main intensity rise above 7.5 eV. Such a large shift is due to the strong Fe 3d destabilization with the increase of occupancy (3d 6 in LFP, 3d 5 in FP), rather than a simple filling of empty levels via Li intercalation. Further calculations of FP energy-loss functions (ELF) in the x, y and z directions also prove that this peak is always present, 26 and that the study of Li x FePO 4 samples using this peak is essentially independent of the precise crystal orientation.

The first application of EELS measurements of this 6 eV peak is the determination of lithium compositions in single phase Li x FePO 4 samples. As an example, we present experimental [Fig. 2(a)] and theoretical [Fig. 2(b)] spectra for a single phase sample and compare them to the respective FP and LFP spectra. A Li 0.6 FePO 4 powder was obtained by chemical delithiation using a proper amount of NO 2 BF 4 . The single phase sample was obtained by rapid quenching in water of this same Li 0.6 FePO 4 powder from 300°C. 13 In order to simulate an intermediate composition, the geometry of a supercell corresponding to a Li 0.5 FePO 4 composition was optimized using the VASP program. 27 Experimental cell parameters were taken from Ref. 18. Optimized atomic parameters as well as magnetic ordering details for this structure are given as supplementary materials. [START_REF]EPAPS Document No. for details of LiFePO 4[END_REF] The same U eff as for LFP was used. The optimized structure was then included in WIEN2k to obtain the dielectric functions for this compound. Since 1 and 2 eV scissors operators were included to fit experiments in Fig. 1, an arbitrary 1.5 eV upward shift for Li 0.5 FePO 4 was used. These results mean that the 6 eV peak is roughly proportional to the lithium content in Li x FePO 4 and can be used for a local quantification of lithium. Considering the latest development of single phase samples for nanograins (d < 40 nm), 28 such a fast and local determination is particularly helpful. The use of this peak is similar to that of the oxygen K edge prepeak with the advantage of a much lower acquisition time. 2 A second application of the 6 eV peak is the possibility of distinguishing between LFP and FP phases by acquiring energy filtered images. Energy filtered TEM (EFTEM) has long been demonstrated to allow mapping of local physical properties, 29,30 but is often based on a small change in VEELS spectra. In our case, VEELS spectra for both compounds are very dissimilar below 8 eV. By selecting electrons in the 5 eV range, energy filtered images with a high contrast between intercalated and non intercalated crystals can thus be obtained. A Li 0.85 FePO 4 sample, synthesized by chemical oxidation of LFP by NO 2 BF 4 , was analyzed using this technique. Images were acquired on a JEOL 2200FS at 200kV equipped with an in-column omega filter. A bright field image [Fig. 3(a)] is compared to an energy filtered image acquired with the energy slit centered at 5 eV [Fig. 3(b)]. The width of the slit was 3 eV with a 10s acquisition time. In Fig. 3(b), some crystals emerge much brighter than others. This contrast is not due to thickness effects. For instance, crystals labeled 1 and 2 present both t/ close to 0.3. Crystal 2 is dark whereas crystal 1 is lit, illustrating the existence of the 6 eV peak (FP) in its EELS spectrum. VEELS spectra recorded on these two areas indeed confirm that area 2 corresponds to an LFP crystal and area 1 to a FP crystal. In most cases, FP crystals were found on edges of big aggregates, in accordance with the chemical delithiation process used for our sample synthesis.

It is worth noting that EFTEM images were acquired in a few seconds and without posttreatment. A fast and simultaneous determination of phases in multiple crystals was thus possible. The electron beam was spread out over a very large area, therefore limiting beam damages while keeping a spatial resolution close to 10 nm in our case. The EFTEM experiments could thus be performed at 200 kV and at room temperature.

In conclusion, using first principles calculations, the most characteristic features in the low loss spectra of LFP and FP were identified. In particular, the area between 3 and 7 eV was shown to be ideal for a fast, unambiguous and easy determination of the repartition of Li x FePO 4 phases in a sample. This region can be used to quantify the local lithium content as well as produce direct chemical maps of intercalated or non intercalated crystals, independently of their orientation. The quickness of the method opens the way to kinetic studies of the lithium intercalation process in Li x FePO 4 crystals.

Figure captions : FIG. 1 .

 :1 Figure captions:

ACKNOWLEDGMENTS

We thank J. Gaubicher (IMN) for supplying the starting LiFePO 4 material.

Computations presented in this work were performed at the "Centre Régional de Calcul Intensif des Pays de la Loire" financed by the French Research Ministry, the "Région Pays de la Loire", and the University of Nantes.


Victor Laforet

Jean-Pierre Lozi

Julia Lawall

eBPF Hybrid Lock: Scalable Spin-based User-Space Locking

Introduction

Multi-core processors have been available for decades, but fully harnessing their computing power remains challenging, primarily due to synchronization issues that can hinder multi-core performance [START_REF] David | Everything you always wanted to know about synchronization but were afraid to ask[END_REF][START_REF] Lozi | Remote core locking: Migrating critical-section execution to improve the performance of multithreaded applications[END_REF]. Locks are a common synchronization primitive and come in two types: spin locks, which busy-wait to acquire a lock and are highly responsive, and blocking locks, which sleep when waiting for a lock and are thus less reactive due to the overhead of context switches.

However, spin locks suffer from a major drawback: their performance collapses when more threads try to acquire them than there are available cores on the machine, which is called over-subscription. This is due to the fact that waiting threads, continuously spinning as they await access to the lock, are likely to preempt the critical section, which prevents all progress on the critical path. These lock holder preemptions make spin locks unusable in oversubscribed scenarios. In contrast, blocking locks do not suffer from that issue. Waiting threads sleep and pose no threat of preempting the critical section. Consequently, blocking locks exhibit better performance in over-subscribed environments. However, they perform significantly worse than spin locks in under-subscribed scenarios [START_REF] Johnson | Decoupling contention management from scheduling[END_REF].

In this context, this work introduces a novel locking technique called the BPF Hybrid Lock. This lock is designed to detect lock holder preemptions and seamlessly switch between spin locks and blocking locks. It operates by having lock waiters spin when the system is under-subscribed and block when the system is over-subscribed. Over-subscription is detected using eBPF by monitoring lock holder preemptions.

The goal of the BPF Hybrid Lock is to ensure critical sections make progress without being hindered by other threads. As the approach does not alter thread priorities or any kernellevel thread metadata, as allowed by e.g., Solaris [START_REF] Solaris | Solaris man page: schedctl_start[END_REF], it cannot be exploited by malicious users to avoid preemptions, thereby compromising fairness. The BPF Hybrid Lock relies on eBPF to avoid kernel modifications, and addressing security concerns. * Student, Presenter Our contributions are the following: an algorithm for safe transitions between lock types, an algorithm to make condition variables more reactive, a method to detect the optimal time to switch from a spin lock to a blocking lock, and provides an implementation of the BPF Hybrid Lock that uses MCS locks and Linux Futex locks. We improve performance of LevelDB, a key-value store from Google [START_REF] Google | LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values[END_REF] in undersubscribed systems, as we reduce the average time of a write operation from 282 to 102 µs and the average time of a read operation from 40 to 25 µs.

Principle

The foundation of the BPF Hybrid Lock lies in its lockswitching algorithm, which allows for smooth transitions between the two lock types, i.e., a spin lock and a blocking lock at any point during the execution. For the most part, this algorithm operates similarly to a standard lock. However, in scenarios where the lock type has changed since the last lock acquisition, the algorithm waits for the previous holder to exit its critical section before transitioning back to a stable state. This process guarantees mutual exclusion and avoids conflicts.

The algorithm is switched to blocking when a lock holder preemption is detected using the eBPF tp_btf/sched_switch event, which occurs during each context switch. When processing this event, only forced context switches, i.e., preemptions are considered. If the preempted thread is holding the lock, the eBPF code switches to blocking by modifying the lock_state variable directly. For now, detection of the need to switch back to the spin lock is not implemented. The eBPF code executes in the kernel without the need for user space polling, making it highly efficient and minimally impacting system performance.

We can improve the efficiency of our algorithm using two methods. First, we want to allow the algorithm to instantly switch from one lock to the other and improve its responsiveness by choosing abortable lock algorithms. This capability is crucial when transitioning from spinning to blocking, as it makes it possible to switch instantly from the spin lock to the blocking lock, thereby quickly releasing cores for the lock holder. Second, to enhance the responsiveness of condition-variable-dependent applications, we developed an algorithm that complements the lock-switching technique. This algorithm allows for safe transitions between blocking and spinning condition variables. It operates based on the principles of the ticket queue management system and synchronizes its switching with the lock.

We provide an implementation of the BPF Hybrid Lock we described and evaluate its performance in the next section. This implementation utilizes MCS as the spin lock and employs a lock based on Linux Futex as the blocking lock.

Evaluation

In this evaluation, we aim to show that the BPF Hybrid Lock improves under-subscribed performance compared to blocking locks while maintaining the over-subscribed performance of blocking locks. We conduct experiments on an Intel 2-socket 40-core machine. The first experiment uses a custom microbenchmark capable of replicating various workload scenarios comparing the BPF Hybrid Lock with the MCS lock and the Futex lock. The second experiment evaluates the performance of the BPF Hybrid Lock in Lev-elDB. We vary the number of threads (ranging from 30 to 50), and the metric assessed is the average time taken by a single operation (read or write).

As shown in Figure 1, the spin lock (MCS) experiences a significant degradation of performance when the system is over-subscribed. On the other hand, the performance of the Futex lock does not degrade. Combining the best of both worlds, the BPF Hybrid Lock maintains the best performance in both scenarios. When under-subscribed, the BPF Hybrid Lock performs as well as the MCS lock. Once the system experiences over-subscription it behaves as the blocking lock (Futex). To evaluate our algorithm in a real-world application, we use LevelDB, which utilizes a single global lock along with a condition variable. The BPF Hybrid Lock version consistently outperforms the original version with both write and read operations when the system is under-subscribed. It demonstrates a performance boost, with approximately 2.8 times better efficiency for writes (as seen in Figure 2) and 1.5 times better efficiency for reads (not shown) compared to the original version. In over-subscribed scenarios, the BPF Hybrid Lock version performs on par with the original LevelDB version for both reads and writes.

In summary, the BPF Hybrid Lock demonstrates its utility in improving multi-core system performance through both the microbenchmark and the LevelDB database benchmark. It offers improved performance in under-subscribed systems while maintaining performance in over-subscribed settings.

Future Work

Future work on the BPF Hybrid Lock will involve the design of lock APIs to accommodate different lock algorithms, a separate detection mechanism for condition variables, the detection of situations warranting a switch back to a spin lock and an extended evaluation with more real-world applications.

Figure 1 .

 1 Figure 1. Microbenchmark comparing the BPF Hybrid, MCS and Futex locks performance with an increasing then decreasung thread count on a 40 core machine, accessing 5 cache lines and waiting for 1000 cycles between iterations. The BPF Hybrid Lock is switched back to MCS in the middle of the graph.

Figure 2 .

 2 Figure 2. LevelDB random writes benchmark on a 40-core machine comparing the performance of the original version and the BPF Hybrid Lock version.


Imen Abidi

Moez Hizem

Iness Ahriz

Maha Cherif
email: maha.cherif@supcom.tniness.ahriz@cnam.fr

Ridha Bouallegue
email: ridha.bouallegue@supcom.tn

Convolutional Neural Networks for blind decoding in Sparse Code Multiple Access

Keywords: SCMA, deep learning, convolutional neural networks, MPA

à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

I. INTRODUCTION

Due to the significant problem of spectrum resources scarcity and dramatic increase of number of users, wireless communication is evolving towards new generations [START_REF] Van | Multiple access with lowdensity signatures[END_REF]. Future wireless generations should be very flexible to support much higher capacity and more services for more connected mobile users. The next generation is needed to provide maximum throughput, high spectral efficiency, and high data bit rate in large coverage area [START_REF] Ding | Application of non-orthogonal multiple access in lte and 5g networks[END_REF]. These requirements are rather challenging and it is difficult to satisfy it by using orthogonal multiple access (OMA) schemes [START_REF] Dai | Non-orthogonal multiple access for 5g: solutions, challenges, opportunities, and future research trends[END_REF]. Future systems need to put forward a new type of multiple access technology to provide higher spectral efficiency and increase the access capability and capacity of the system. To enhance the multiple access gain, non-orthogonal multiple access schemes (NOMA) have been proposed and emerged as promising candidates solution for future systems [START_REF] Wang | Comparison study of non-orthogonal multiple access schemes for 5g[END_REF] [START_REF] Saito | Non-orthogonal multiple access (noma) for cellular future radio access[END_REF]. SCMA has been considered as a promising technique for future systems and has attracted growing research interests in order to meet the targets of the next generation of wireless communication networks [START_REF] Nikopour | Sparse code multiple access[END_REF]. SCMA is a waveform in which sparse codewords of multiple layers of devices are overlaid in code and power domains and carried over shared time-frequency resources [START_REF] Nikopour | Scma for downlink multiple access of 5g wireless networks[END_REF]. SCMA is a technique, in which data streams, to be transmitted, are directly mapped to code words of different multi-dimensional codebooks, where each codeword represents a spread transmission layer [START_REF] Wu | Sparse code multiple access for 5g radio transmission[END_REF].

The major challenge of SCMA is the very high detection complexity. In order to reduce the computational complexity [START_REF] Nikopour | Systems and methods for sparse code multiple access[END_REF], some methods have been proposed in recent researches, including the low-density parity check (LDPC) message passing algorithm (LDPC-MPA) detector in [START_REF] Xiao | Iterative detection and decoding for scma systems with ldpc codes[END_REF], the Jacobi approximation message passing algorithm (Max-log MPA) detector in [START_REF] Liu | On fixedpoint implementation of log-mpa for scma signals[END_REF], and the low complexity Maximum-Likelihood Approximation detector in [START_REF] Alizadeh | Performance analysis of a reduced complexity scma decoder exploiting a low-complexity maximumlikelihood approximation[END_REF]. The proposed methods have exhibited a good tradeoff between the bit error rate (BER) performance and the computational complexity [START_REF] Alam | Performance study of scma codebook design[END_REF]. These methods have high computational overheads restricting the real-time operation of SCMA.

In recent years, deep neural networks technologies have been applied to successfully resolve the problems of image recognition and classification [START_REF] Simonyan | Very deep convolutional networks for large-scale image recognition[END_REF]. Convolutional Neural Networks are a category of Neural Networks that have proven very effective in such areas [START_REF] He | Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[END_REF]. We extend the application of deep learning to SCMA detection and propose a low complexity deep neural networks SCMA blind detector. Recently, parallel works were presented in [START_REF] Kim | Deep learning-aided scma[END_REF] and [START_REF] Lu | An enhanced scma detector enabled by deep neural network[END_REF] investigating SCMA enabled by deep neural network. [START_REF] Kim | Deep learning-aided scma[END_REF] proposes a SCMA scheme in which the generation of codewords and the detection of symbols are based on deep learning whilst [START_REF] Lu | An enhanced scma detector enabled by deep neural network[END_REF] utilizes a fixed constellation mapping and studies only a detector based on neural network. Different from [START_REF] Kim | Deep learning-aided scma[END_REF], we are only interested on the detection problem and different from [START_REF] Lu | An enhanced scma detector enabled by deep neural network[END_REF], a novel convolutional neural networks (CNNs) based decoding for SCMA is proposed, where a blind decoding strategy for SCMA is learned using deep convolutional neural networks, in which the architecture of the network is different. Thanks to its structure, CNNs overcome the limitations of traditional deep neural networks. In fact, it explicitly focus on local structure of the signal and it is able to gain invariance to local deformations due to the noise, which minimize bit error rate (BER). The number of free parameters in CNNs is limited, which make the complexity lower compared to traditional deep learning. The training can be done in a single shot to generate the decoding model, while a MPA based decoder requires several iterations to achieve a high performance. A set of simulations is performed to confirm that the blind CNNs based decoder provides a lower BER and less computational complexity than a conventional MPA based decoder for SCMA. The remainder of this paper is organized as follows. In section I, we introduce the system model of SCMA. The conventional MPA based decoder and the proposed convolutional neural networks based decoder are discussed in Section II. The simulation results and discussion are provided in Section III. We conclude and propose perspectives in Section IV.

II. SYSTEM MODEL

We consider a basic system model of SCMA with J users spreading over K resources through additive white Gaussian noise (AWGN) channel. J is greater than K and the ratio J/K is defined to be the overloading factor as shown in Fig. 1. Bit streams to be transmitted are directly mapped to codewords of different multi-dimensional codebooks, where each codeword represents a spread transmission layer. The transmitted signal from each user is multiplexed to some orthogonal resources. An SCMA decoder processes the superimposed signal.

A. SCMA Encoder

An SCMA encoder is defined as a map from log2(M ) bits to a K-dimensional complex codebook of size M. The SCMA codebooks are designed in order to reduce the detection complexity. The codewords are composed of multi-dimensional complex symbols, and the codewords in the same codebook have the same sparse pattern.

Fig. 2 shows an example of a codebook set containing 6 codebooks. Each codebook transmits only one layer, which is composed of 4 multi-dimensional complex codewords that corresponds to 4 points of constellation. The length of each codeword is M = 4, which is the same as the spreading length. For mapping, the selection of each codeword from codebook is based on the input bit sequence.

The SCMA encoder can be described as a mapping of coded bits b j to a multidimensional complex codeword x j . Then, the data are modulated to the subcarriers. The received signal can be expressed as bellow: where x j = (x 1j , .., x Kj ) T is the SCMA codeword of layer j, and h j = (h 1j , .., h Kj ) is the channel vector of layer j, and n is the ambient noise.

y = J j=1 diag(h j )x j + n (1

B. SCMA Decoder

This section proposes a new low-complexity blind-detection method based on CNNs for SCMA which outperforms MPA based decoding and reduces the complexity. Subsection B.1) briefly describes the original MPA decoder. The proposed detection method is discussed in subsection B.2).

1) Message Passing Algorithm: At the receiver, maximum a posterior probability (MAP) detection is optimal to decode the overlaid symbols over each resource but with very large complexity [START_REF] Frank R Kschischang | Factor graphs and the sum-product algorithm[END_REF]. There are already some optimizations on the detection [START_REF] Xiao | Simplified multiuser detection for scma with sum-product algorithm[END_REF], but the complexity is still exponential. The estimation of transmitted codewords X = (x 1 , x 1 , ..., x J ) is resolved according to:

X = arg max X∈(X J j=1 ){xj } P (X|Y ) (2)
where x j is the codebook of user j. By utilizing SCMA codewords sparsity, an iterative multi-user detection based on MPA is employed to achieve a near optimal performance with low complexity. The task of MPA detector is to separate the interfering symbols in an iterative fashion. It is based on the message exchange between layer nodes VN and resource nodes FN in the factor graph. MPA algorithm updates the extrinsic information of FN and VN nodes along the edges in the factor graph, which is defined as low-density matrix F . F is defined as F = (f 1 , f 2 , ..., f J ), in which f j = (f j,1 , f j,2 , ..., f j,K ) T is the indicator vector of the j th layer and f j,k = 1 means that the layer j is connected to the resource k, otherwise, f j,k = 0. The following matrix illustrates an example of factor graph, which is presented as 4 x 6 matrix given by:

F =     0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0     (3)
The codewords of each codebook has a probability to be the transmitted symbol. Firstly, the probability distribution of codewords are initialized to be equal. Then, they are calculated as the exchanged messages in MPA according to the received signal y, the knowledge of the channel h j , the noise power N 0 and the factor graph. In each iteration, the probability distribution of each sent codeword on resource k is deduced by MPA detector according the rest of the connected user nodes. Considering the equation (2), the value of the probability of x 12 is computed according to x 13 , x 15 , the noise power N 0 and the value of y 1 . The procedure is detailed in Algorithm 1.

2) Convolutional Neural Networks:

In this section, we briefly introduce a blind detector for SCMA based on convolutional neural networks [START_REF] Krizhevsky | Imagenet classification with deep convolutional neural networks[END_REF]. CNNs use a variation of multilayer perceptron designed to require minimal preprocessing. These deep-learning networks perform automatic feature extraction without human intervention, unlike most traditional machine-learning algorithms [START_REF] Lawrence | Face recognition: A convolutional neural-network approach[END_REF]. Deep learning's ability to process and learn from huge quantities of unlabelled data, give it a distinct advantage over previous algorithms. In deeplearning networks, each layer of nodes trains on a distinct set of features based on the previous layer's output [START_REF] Simonyan | Very deep convolutional networks for large-scale image recognition[END_REF]. Thanks to its structure, CNNs can perfectly overcome the limitations of traditional neural networks. A CNN consists of number of layers such as convolutional, non linearity and fully connected layers. Convolutional layers take several feature maps as input and produce n feature maps as output through the calculation Algorithm 1: MPA detection for SCMA Input: y, F, N 0 , h j,k , j = 1..J, k = 1..K, X j ; Step1: Initialization for k = 1..K do ind = f ind(F (k, :) == 1) //find users connected to k;

for m 1 = 1 : M &m 2 = 1 : M &m 3 = 1 : M do f (m 1 , m 2 , m 3 , k, N 0,k , h k ) = -(1/N 0 )|y k -(X(k, m 1 , ind(1))h k,ind(1) + X(k, m 2 , ind(2))h k,ind(2) ) + X(k, m 3 , ind(3))h k,ind (3)
)| 2 ; I 0 j→k = 1/M, j = 1..J, k = 1..K; end end Step2: Iterative message passing along edges for it = 1..Niter do {Resource node k passes updates obtained from extrinsic information to its neighboring layer nodes

} for k = 1..K & F (j, k) = 1 do ind = f ind(F (k, :) == 1) ; v 1 = ind(1) ,v 2 = ind(2), v 3 = ind(3); I it k→v 1 (m 1 ) = M m 2 =1 M m 3 =1 f (m 1 , m 2 , m 3 , k, N 0,k , h k ); (I it-1 v 2 →k (m 2 )(I it-1 v 3 →k (m 3 ), m 1 = 1..M ; I it k→v 2 (m 2 ) = M m 1 =1 M m 3 =1 f (m 1 , m 2 , m 3 , k, N 0,k , h k ); (I it-1 v 1 →k (m 1 )(I it-1 v 3 →k (m 3 ), m 2 = 1..M ; I it k→v 3 (m 3 ) = M m 1 =1 M m 3 =1 f (m 1 , m 2 , m 3 , k, N 0,k , h k ); (I it-1 v 1 →k (m 1 )(I it-1 v 2 →k (m 2 ), m 3 = 1.
.M ; end end {Update messages from layer nodes} { Layer node j passes updates obtained from extrinsic information to its neighboring resource nodes } for j = 1..J do for m = 1..M do I it j→k 1 = normalize(ap j (m)I k 2 →j (m)) ; I it j→k 2 = normalize(ap j (m)I k 1 →j (m)) ; Step3: Output the final guess of the sent codeword by each layer The guess at layer node j for codeword m is a chain product of all guesses from all its connected resource nodes and the a prior probability Q j (m) = ap j dv l=1 I N iter l→j , m = 1..M ; dv is the number of connected resources to a user node. end end Finally, the codeword, which maximizes Q j (.) is considered as the transmitted codeword in the j th user.

of the scalar product between their weights and the region connected to the input volume, where n is the number of filters in the convolution layer. The output of layer l consists of m

Y (l) i = B (l) i + m (l-1) 1 j=1 K (l) i,j * Y (l-1) j (4) where B (l)
i is a bias matrix and K (l) i,j is the filter connecting the j th feature map in layer (l -1) with the i th feature map in layer l.

If layer l is a non-linearity layer, its input is given by m , given by

Y (l) i = f (Y (l-1) i ) ( 5
)
where f is the activation function used in layer l and operates point wise. A fully connected (FC) layer with d inputs and n nodes have connections to all activations in the previous layer. It can be interpreted as a convolutional layer with an input of shape 1 × 1 × d and n filters of size 1 × 1. This will produce an output shape 1 × 1 × n. FC acts as classifier.

Our goal in using CNNs in investigating SCMA is to construct a blind decoding strategy with high performance and low complexity. The act of transmitting data streams through noisy channels make the decoding technique more difficult, and the job of the convolutional neural network is to recognise the codewords sent by each user within the noise, without prior knowledge of channel information or the relationships between resource and layer nodes presented by the factor graph. When a network is being trained, it generates a model, and measures the distance between that model and the benchmark through a loss function. The loss function can be defined in many different ways but a common one is mean squared error (MSE), which can be defined as:

L = i (T i -O i ) 2 (6)
where T i is the actual data and O i is the predicted results. The attempts of CNNs to minimize the loss function involve resampling the shuffled inputs and re-reconstructing the data, until it finds those inputs, which bring its model closest to achieve the designed targets. A backprpagation method is used to calculate the gradients of the loss with respect to all weights in the network. Thus, in order to minimize the output error, the weights, biases of CNNs and filter values are updated according to channel samples using a stochastic gradient descent (SGD) method. The weight update is performed based on the following equation:

w = w i -α dL dw ( 7
)
where α is the learning rate.

In order to construct the model, it is required to define the number of layers, the learning weights, number and size of filters, along with other tunable parameters. These parameters and the architecture of the network are fixed initially and do not change during the training process. Only the values of the filter matrix and connection weights get updated during training.

We have proposed a blind SCMA decoder based on deep neural networks. Initially, We have structured the data for training and testing sinuously. Then, we have architected the layers and the filters in order to generate the adequate model, which will be used to detect blindly the codewords sent by each user, without prior knowledge of signal characteristics or channel information. In our proposed decoding scheme, the superimposed input data streams on each resource are treated as real and imaginary data in order to construct the adequate inputs for the convolutional layer as shown in Fig. 3. The input data streams used for training are generated randomly. Then, they are propagated through the batch-normalized layers and Rectified layers to reach the final layer, which can be a logistic, or softmax, classifier that assigns a likelihood to a particular outcome or label. We utilized the fully connected (FC) layer for the final layer in order to combine all information that could spread over all the resources, given that multiple data streams are multiplexed over multiple resources.

During training, all the weights and parameters of the network have been optimized to correctly classify the input data from the training set. Once the training process is finished, our model is generated and our network is able to learn to recognize the sent codewords. When a new data is input into the CNN, the network goes through the forward propagation step and outputs a probability for each class. If our training set is large enough, the network will generalize well to new inputs and classify them into correct categories.

III. SIMULATION RESULTS

A. Data set

The SCMA design follows the factor graph of Fig. 4 with the basic parameters K = 4 resources, J = 6 users and d f = 3, where d f is the number of branches arriving to a resource node. Hence, the overloading factor is up to 150%. A high ratio of user's stream to resource degrades BER performance because more bits are super-positioned to single resource. The simulations are performed over a fixed constellation mapping as depicted in Fig. 5. The data are trained over E b /N 0 of values: 2, 4, 6, 8, 10, 12 and 14. Then, we conclude that E b /N 0 = 6 is the best training environment for a high SNR. For training, 300, 000 values of input data streams are generated randomly. Thus, our network is large enough to generalize well. In addition, we utilized 4 sets of convolutional layer, batch normalization layer and ReLU layer. For the final layer, a full-connected layer is utilized. The weights and biases are initialized randomly. Yet, the Fig. 5: Constellations of 6 users on 4 resources learning rate of SGD method, α, is set to 0.001, which is sufficiently small for convergence of loss function. It should be noted that the convolutional neural network parameters, e.g., learning rate, number of hidden layers and the number of nodes, are not arbitrary chosen but determined through exhaustive searches.

Through training, we generate our model and in order to investigate its efficiency, data set input streams are utilized for validation.

B. Results

Numerical results show that the proposed CNNs for blind decoding in SCMA can achieve an excellent performance gain as depicted in Fig. 6. It can be seen that the BER performance of blind CNNs-SCMA are better than MPA based decoder for SCMA in additive white Gaussian noise channels, where 0.9dB improvement can be achieved. It outperforms MPA based decoder for SCMA using validation data in terms of BER. The deep learning enables an efficient blind decoding strategy for a sparse and multidimensional superimposed signal. In Fig. 6, we evaluate the BER for CNNs based decoding for SCMA using data set values for testing. The simulation results show that blind CNNs-SCMA exhibits the same BER performance as MPA under the value of E b /N 0 = 6. Then it outperforms conventional MPA decoder without prior knowledge about channel information and user-resource connections.

C. Performance vs Complexity

Through simulations, we find that the computational complexity of CNNs for blind decoding in SCMA is much less than MPA based decoder scheme. The main contribution of deep learning is to train the network once, and for a new input data, the output probabilities are calculated using the We denote the number of iterations by I. The complexity of MPA receiver is to the order of I.(d 2 f .M d f +d 2 f JM/K), where M is the modulation order and d f is the maximum degree of resource node. Thus, it is clear that the complexity of MPA based decoder increases linearly with the system parameters, namely the number of iterations and the codebook dimension. Whereas, our proposed scheme is a blind detection, which does not take into consideration the degree of resource node and user-user connection. For both methods, our proposed scheme and MPA based detector, the simulations are performed under the same conditions. The simulations are implemented by utilizing 2.5GHz Intel Core i5 CPU with 8Go, 1600M Hz double data rate three (DDR3) memory. The obtained results showed that the computation time of our proposed scheme is lower than the MPA scheme even with one iteration as shown in Fig. 7b. However, the BER performance is much better as confirmed in Fig. 7a. In consequence, CNNs for blind decoding technique outperforms conventional schemes in terms of both BER and computational complexity. For a new data set of symbols, the output probabilities are calculated using the weights which have been optimized to correctly classify all the previous training examples.

IV. CONCLUSION

In this paper, we have proposed a novel strategy of decoding for SCMA based on convolutional neural networks. The simulation results provided illustrate the performance advantage of decoding strategy based on convolution neural networks over the one based on the iterative approach MPA. Through simulations, we showed that our proposed scheme outperforms conventional schemes in terms of both BER and computational complexity. Coupled with the rapid advancements in distributed and GPU (graphics processing units) computation, it is now possible to train much larger and more powerful CNNs that achieve better performance in lower time. Future research will be directed towards further improvements on both transceiver and receiver. We aim to implement a flexible SCMA encoder an decoder that accept a codebook allocation and a mother constellation as input and utilize the deep learning advantage in designing the SCMA codebooks.

Fig. 1 :

 1 Fig. 1: Block diagram of SCMA.

Fig. 2 :

 2 Fig. 2: SCMA Mapping.

Fig. 3 :

 3 Fig. 3: Structure of CNNs based decoder for SCMA.

3 .

 3 The i th feature map in layer l, denoted Y (l) i , is computed as

Fig. 4 :

 4 Fig. 4: Factor graph representation of an SCMA with K = 4 and J = 6.

Fig. 6 :

 6 Fig. 6: BER performance of MPA based decoder vs blind CNN detector for SCMA

Fig. 7 :

 7 Fig. 7: BER Performance of MPA based decoder vs CNNs based decoder for SCMA.

  )

	00 01 10 11	00 01 10 11	00 01 10 11	00 01 10 11	00 01 10 11	00 01 10 11
	+	+	+	+	+	=
	01	00	11	11	10	01