[AMBER] Fixed the problem of AMBER20 run with pmemd.cuda with CUDA11.1 and 3080 GPU card

From: liu kai <kailiu.outlook.com>
Date: Thu, 31 Dec 2020 13:34:05 +0000

Dear All,

I have a problem with amber20 with CUDA11.1, when I used Nvidia 3080 GPU card.
The error message is “cudaMemcpyToSymbol: SetSim copy to cSim failed invalid device symbol”, maybe connected to http://archive.ambermd.org/202012/0096.html
I think there is a potential problem in the configure2 file, like my case.

For details:

  1. I have updated to the newest version including update.8 and update.12 for Amber20 and Ambertool20, respectively.
  2. I used the legacy way to install. Because the error of “unsupported cuda 11.1”, solved by: http://archive.ambermd.org/202011/0157.html
  3. After installation, I used the same executable file:pmemd.cuda but different machine for my test.
  4. The test file is already equilibrated, I originally wanted to run the production step for efficiency comparison.
  5. Thus, It is a repeated calculation but with different ig value.

CUDA 11.1 + Nvidia 3080 calculation failed, with above error message.

CUDA 11.1 + Nvidia 2080Ti OK

CUDA 10.1 + Nvidia 2080Ti OK

Solution:
The modification in step2 is not enough. Because the gencode is only support to sm75.
While The 3080 card requires sm86.
So, I added two lines, highlighted as red as below.

Original:
   if [ "$cudaversion" = "11.0"]; then
      # Implement the standard, not warp synchronous, compilation
      sm75flags='-gencode arch=compute_75,code=sm_75'
      sm70flags='-gencode arch=compute_70,code=sm_70'
      echo "CUDA Version $cudaversion detected"
      echo "Configuring for SM5.0, SM5.2, SM5.3, SM6.0, SM6.1, SM7.0, SM7.5 and SM8.0"
      nvccflags="$sm50flags $sm52flags $sm53flags $sm60flags $sm61flags $sm70flags $sm75flags $sm80flags $sm86flags -Wno-deprecated-declarations"
changed to:
   if [ "$cudaversion" = "11.0" -o "$cudaversion" = "11.1" ]; then
      # Implement the standard, not warp synchronous, compilation
      sm86flags='-gencode arch=compute_86,code=sm_86'
      sm80flags='-gencode arch=compute_80,code=sm_80'
      sm75flags='-gencode arch=compute_75,code=sm_75'
      sm70flags='-gencode arch=compute_70,code=sm_70'
      echo "CUDA Version $cudaversion detected"
      echo "Configuring for SM5.0, SM5.2, SM5.3, SM6.0, SM6.1, SM7.0, SM7.5 and SM8.0"
      nvccflags="$sm50flags $sm52flags $sm53flags $sm60flags $sm61flags $sm70flags $sm75flags $sm80flags $sm86flags -Wno-deprecated-declarations"

After that, my calculation was terminated normally by CUDA 11.1 + Nvidia 3080.
I have not carefully tested other cases.
But I hope this would provide some hits for someone has similar problem.

Yours truly,
Kai




_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Thu Dec 31 2020 - 06:00:03 PST
Custom Search