Installing twice works!!
I compiled a new kernel (18.104.22.168) and then ran "sh NVIDIA-Linux-x86-1.0-8178-pkg1.run" as instructed, but I got the popular black screen when starting Xorg.
After looking around these forums, I realised that my /usr/lib/tls directory was created but empty, and it is supposed to have "libnvidia-tls.so.1.0.8178" and "libnvidia-tls.so.1" in it. Someone had suggested creating this directory manually and reinstalling. But since it was already there, I tried a second install. It worked!
It seems that the first install creates the /usr/lib/tls directory, but fails to write to it. The second install manages to finish writing the files. NVidia should really fix this flaw in the script, but for now just trying running the install script again if you are having problems.