MatX 中有关共享变量初始化的构建问题

问题描述 投票:0回答:1

我正在尝试构建 MatX 并将其安装到我的 Linux 机器上。

我正在按照此处找到的说明进行操作。

除了当我运行

make -j
命令时,我得到以下跟踪:

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(349): error: initializer not allowed for __shared__ variable 

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(349): error: initializer not allowed for __shared__ variable 

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(349): error: initializer not allowed for __shared__ variable 

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(349): error: initializer not allowed for __shared__ variable 

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(349): error: initializer not allowed for __shared__ variable 

/home/<me>/Documents/MatX/include/matx/kernels/channelize_poly.cuh(64): error: initializer not allowed for __shared__ variable 

这很奇怪,因为如果您查看

channelize_poly.cuh
中的违规行(请参阅来源此处),您会看到:

    // Lines 63 & 64
    const int SMEM_MAX_FILTER_TAPS = 128;
    __shared__ filter_t smem_filter[SMEM_MAX_FILTER_TAPS];

   // Lines 348 & 349
   // Pre-compute the DFT complex exponentials and store in shared memory
    __shared__ output_t smem_eij[NUM_CHAN][NUM_CHAN];

即没有假设的共享变量的初始化。

我正在使用的软件:

  • CUDA 11.6
  • G++ 9.4.0
  • Ubuntu 20.04
c++ ubuntu makefile cuda g++
1个回答
0
投票

所以这是一个已知问题。我为此在 GH 上发布了一个问题;请参阅此处。修复似乎正在进行中。

© www.soinside.com 2019 - 2024. All rights reserved.