Commit d760b356 authored by Christophe Favergeon's avatar Christophe Favergeon
Browse files

Added some tests for the ComputeGraph.

parent 5ca0d342
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
# FAQ

## Table of contents

* [Alignment](#alignment)
* [Memory sharing](#memory-sharing-example)
* [Latencies](#latencies)
* [Performances](#performances)

## Alignment

When the `memoryOptimization` mode is enabled, the memory can be shared between different FIFOs (when the FIFOs are in fact used as simple arrays).
+15 −3
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ class CFFT<float32_t,inputSize,float32_t,inputSize>: public GenericNode<float32_
{
public:
    CFFT(FIFOBase<float32_t> &src,FIFOBase<float32_t> &dst):GenericNode<float32_t,inputSize,float32_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_f32(&sfft,inputSize>>1);
    };

@@ -57,6 +56,10 @@ public:

    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        float32_t *a=this->getReadBuffer();
        float32_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(float32_t));
@@ -65,6 +68,7 @@ public:
    };

    arm_cfft_instance_f32 sfft;
    arm_status status;

};

@@ -79,7 +83,6 @@ class CFFT<float16_t,inputSize,float16_t,inputSize>: public GenericNode<float16_
{
public:
    CFFT(FIFOBase<float16_t> &src,FIFOBase<float16_t> &dst):GenericNode<float16_t,inputSize,float16_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_f16(&sfft,inputSize>>1);
    };

@@ -97,6 +100,10 @@ public:

    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        float16_t *a=this->getReadBuffer();
        float16_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(float16_t));
@@ -105,6 +112,7 @@ public:
    };

    arm_cfft_instance_f16 sfft;
    arm_status status;

};
#endif
@@ -118,7 +126,6 @@ class CFFT<q15_t,inputSize,q15_t,inputSize>: public GenericNode<q15_t,inputSize,
{
public:
    CFFT(FIFOBase<q15_t> &src,FIFOBase<q15_t> &dst):GenericNode<q15_t,inputSize,q15_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_q15(&sfft,inputSize>>1);
    };

@@ -136,6 +143,10 @@ public:
    
    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        q15_t *a=this->getReadBuffer();
        q15_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(q15_t));
@@ -144,6 +155,7 @@ public:
    };

    arm_cfft_instance_q15 sfft;
    arm_status status;

};

+16 −4
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ class ICFFT<float32_t,inputSize,float32_t,inputSize>: public GenericNode<float32
{
public:
    ICFFT(FIFOBase<float32_t> &src,FIFOBase<float32_t> &dst):GenericNode<float32_t,inputSize,float32_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_f32(&sifft,inputSize>>1);
    };

@@ -57,6 +56,10 @@ public:

    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        float32_t *a=this->getReadBuffer();
        float32_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(float32_t));
@@ -65,6 +68,7 @@ public:
    };

    arm_cfft_instance_f32 sifft;
    arm_status status;

};

@@ -79,7 +83,6 @@ class ICFFT<float16_t,inputSize,float16_t,inputSize>: public GenericNode<float16
{
public:
    ICFFT(FIFOBase<float16_t> &src,FIFOBase<float16_t> &dst):GenericNode<float16_t,inputSize,float16_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_f16(&sifft,inputSize>>1);
    };

@@ -97,6 +100,10 @@ public:

    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        float16_t *a=this->getReadBuffer();
        float16_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(float16_t));
@@ -105,6 +112,7 @@ public:
    };

    arm_cfft_instance_f16 sifft;
    arm_status status;

};
#endif
@@ -119,7 +127,6 @@ class ICFFT<q15_t,inputSize,q15_t,inputSize>: public GenericNode<q15_t,inputSize
{
public:
    ICFFT(FIFOBase<q15_t> &src,FIFOBase<q15_t> &dst):GenericNode<q15_t,inputSize,q15_t,inputSize>(src,dst){
         arm_status status;
         status=arm_cfft_init_q15(&sifft,inputSize>>1);
    };

@@ -137,6 +144,10 @@ public:
    
    int run() final
    {
        if (status!=ARM_MATH_SUCCESS)
        {
            return(CG_INIT_FAILURE);
        }
        q15_t *a=this->getReadBuffer();
        q15_t *b=this->getWriteBuffer();
        memcpy((void*)b,(void*)a,inputSize*sizeof(q15_t));
@@ -144,7 +155,8 @@ public:
        return(0);
    };

    arm_cfft_instance_f32 sifft;
    arm_cfft_instance_q15 sifft;
    arm_status status;

};
#endif
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
cprj/out 
cprj/tmp
__pycache__
+9 −0
Original line number Diff line number Diff line
core_clk.mul=50000000
mps3_board.visualisation.disable-visualisation=1
cpu0.semihosting-enable=0
cpu0.FPU=1
cpu0.MVE=2
cpu0.SAU=0
cpu0.SECEXT=1
cpu0.INITSVTOR=0
cpu0.INITNSVTOR=0
Loading