OP points to a particular [implementation](https://github.com/opencv/opencv/issues/17148) of the `mish` activation function for accuracy specifications, so I had to characterize this first. That implementation uses single precision (`float`), and is stable and accurate in the positive half-plane. In the negative half-plane, because it uses `logf` instead of `log1pf`,  relative error quickly grows a $x\to-\infty$. Loss of accuracy starts around $-1$ and already at $-16.6355324$ the implementation falsely returns $0$, because $\exp(-16.6355324) = 2^{-24}$.

The same accuracy and behavior can be achieved by using a simple mathematical transformation that eliminates $\mathrm{tahn}$, and considering that GPUs typically offer a fused multiply-add (FMA) as well as a fast reciprocal, which one would want to utilize. Exemplary CUDA code looks as follows:

<!-- language: lang-c -->

    __device__ float my_mishf (float x)
    {
        float r;
        float e = expf (x);
        r = 1.0f / fmaf (fmaf (-0.5f, e, -1.0f), e, -1.0f);
        r = fmaf (r, x, x);
        return r;
    }

As with the reference implementation pointed to by OP, this has excellent accuracy in the positive half-plane, and in the negative half-plane error increases rapidly so that at $-16.6355324$ the implementation falsely returns $0$. 

If there is a desire to address these accuracy issues, we can apply the following observations. For sufficiently small $x$, $f(x) = x \exp(x)$ to within floating-point accuracy. For `float` computation this holds for $x < -15$. For the interval $[-15,-1]$, we can use a rational approximation $R(x)$ to compute $f(x) := R(x)x\exp(x)$. Exemplary CUDA code looks as follows:

<!-- language: lang-c -->

    __device__ float my_mishf (float x)
    {
        float r;
        if (x >= -1.0f) {
            float e = expf (x);
            r = 1.0f / fmaf (fmaf (-0.5f, e, -1.0f), e, -1.0f);
            r = fmaf (r, x, x);
        } else {
            float eh = expf (0.5f * x);
            float p =        1.03628484e-3f;  //  0x1.0fa7e6p-10
            p = fmaf (p, x, -7.28869531e-3f); // -0x1.ddac04p-8
            p = fmaf (p, x,  3.47027816e-2f); //  0x1.1c4902p-5
            p = fmaf (p, x, -3.54762226e-1f); // -0x1.6b46cap-2
            p = fmaf (p, x,  8.58785570e-1f); //  0x1.b7b2c0p-1
            p = fmaf (p, x, -1.38065982e+0f); // -0x1.6172ecp+0
            p = fmaf (p, x,  5.97694337e-1f); //  0x1.3204fap-1
            float q =        1.03527203e-3f;  //  0x1.0f63eep-10
            q = fmaf (q, x, -7.35638570e-3f); // -0x1.e21bacp-8
            q = fmaf (q, x,  3.28683928e-2f); //  0x1.0d4204p-5
            q = fmaf (q, x, -3.79927397e-1f); // -0x1.850bb2p-2 
            q = fmaf (q, x,  6.86127126e-1f); //  0x1.5f4c0cp-1
            q = fmaf (q, x, -1.81509292e+0f); // -0x1.d0a9eep+0
            q = fmaf (q, x,  1.00000000e+0f); //  0x1.000000p+0
            r = (1.0f / q) * p;
            if (x < -15.0f) r = 1.0f;
            r = r * x * eh * eh;
        }
        return r;
    }