Search code examples
cudacudpp

Does cudpp only work for devices of a certain compute capability


I want to use cudpp. I am curious if it only works for devices of a certain compute capability ? If yes, what is the lower bound.

I found this error message in their hash table implementation code: "Error in cudppHashTable call in testHashTable (make sure your device is at least compute version 2.0\n"

I dont know which compute version they are referring to??


Solution

  • For as far as I'm aware, there are no restrictions with regards to compute capability. There are some optimizations for cards with a Fermi architecture (sm_20) according to the change logs.

    CUDPP 2.0 does however state it only works for CUDA 3.0 or higher (and they advice to use versions higher than 3.2), but this has no direct relation to compute capability.

    Update:

    As found by the OP, there is indeed functionality which explicitly requires a 2.0 architecture, such as cudppHashTable. As per the doc in the source (line 206):

    The hash table implementation requires hardware capability 2.0 or higher (64-bit atomic operations).

    From the wording I would assume there are special cases in which a certain compute capability is required, but it is not a general requirement.