scalehls icon indicating copy to clipboard operation
scalehls copied to clipboard

Error when creating temporary values within kernel functions

Open shanhx2000 opened this issue 1 year ago • 0 comments

Dear developers,

As a beginner with HLS, I am trying to use ScaleHLS to optimize a large integer modular multiplication program. Unfortunately, I met some difficulties.

First, I found that ap_fixed library provided by Vitis cannot be used. ap_fixed library needs template in it, requiring to be C++ code. I kind of curious if there's a way to support taking in C++ code with ScaleHLS?

Second, I got "Stack dump" for llvm compiler when there are temporary array claimed within the kernel function. Here's an easy example that crashes. Do you have any comments about it?

typedef float uint64_t; void multiply256(uint64_t a[NUM_INTS], uint64_t b[NUM_INTS], uint64_t result[NUM_INTS*2]) { #pragma scop uint64_t temp[NUM_INTS * 2] = {0}; for (int i = 0; i < NUM_INTS*2; i++) { result[i] = temp[i]; } #pragma endscop }

Thanks.

shanhx2000 avatar Nov 13 '23 15:11 shanhx2000