Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure due to CUDA errors when generating code for CPU? #547

Open
khaled3ttia opened this issue Mar 23, 2023 · 0 comments
Open

Failure due to CUDA errors when generating code for CPU? #547

khaled3ttia opened this issue Mar 23, 2023 · 0 comments

Comments

@khaled3ttia
Copy link

Hello,

I am running into a slightly strange issue when trying to generate and run the kernel for tensor times vector.

Here is the code I am using

#include "taco.h"
#include <numeric>
#include <random>
#include <unistd.h>

#define floattype double

using namespace taco;
int main(int argc, char *argv[]) {

  std::default_random_engine gen(0);
  std::uniform_real_distribution<floattype> unif(0.0, 1.0);

  // 3D Tensor file path
  std::string tnsFile = "~/Documents/taco/test/data/3tensor.tns";

  // Used formats
  Format csr({Dense, Sparse});
  Format csf({Sparse, Sparse, Sparse});
  Format dv({Dense});

  // Load the sparse tensor
  Tensor<floattype> B = read(tnsFile, csf);

  // Prepare the tensor for the result
  Tensor<floattype> A({B.getDimension(0), B.getDimension(1)}, Dense);

  // populate a random dense vector
  Tensor<floattype> c({B.getDimension(2)}, dv);

  for (int i = 0; i < c.getDimension(0); ++i) {

    c.insert({i}, unif(gen));
  }

  c.pack();

  IndexVar i, j, k, l;

  // The main expression
  A(i, j) = B(i, j, k) * c(k);

  // GO!
  A.compile();
  A.assemble();
  A.compute();
}

The compilation command is as follows:
g++ -std=c++17 -O3 -DNDEBUG -DTACO -I ~/Documents/taco/include taco_3d.cpp -o taco_3d.x -ltaco

I get no compilation errors, but when I run the executable the error I get is:

$ ./taco_3d.x
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(131): error: expected a ")"

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(141): error: expected a ")"

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(144): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(144): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(145): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(145): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(146): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(146): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(147): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(147): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(148): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(148): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(149): error: expected an identifier

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(149): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(150): error: expected an identifier
                                                                                                                                                                           /tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(150): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(151): error: identifier "A93" is undefined

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(157): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(157): error: user-defined literal operator not found                                                                                  
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(158): error: user-defined literal operator not found                                                                                  
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(159): error: user-defined literal operator not found                                                                                  
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(159): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(160): error: user-defined literal operator not found                                                                                  
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(163): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(163): error: user-defined literal operator not found                                                                                  
/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(164): error: user-defined literal operator not found

/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu(165): error: user-defined literal operator not found                                                                                  
27 errors detected in the compilation of "/tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu".                                                                                           terminate called after throwing an instance of 'taco::TacoException'
  what():  Error at /home/hpclab/Documents/taco/src/codegen/module.cpp:156 in compile:                                                                                      Compilation command failed:
nvcc -w -O3 -Xcompiler "-fPIC -shared -ffast-math -O3" --generate-code arch=compute_86,code=sm_86 /tmp/taco_tmp_txUdPh/5x1096hkmtw4.cu /tmp/taco_tmp_txUdPh/5x1096hkmtw4_shims.cpp -o /tmp/taco_tmp_txUdPh/5x1096hkmtw4.so -lm
returned 256
Aborted (core dumped)

Any pointers on how to fix this? Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant