Since I found finally good solution to have maximum performance on with GTX970 and Windows 10 I thought it is worth sharing it.
I am not sure it was mentioned on this forum somewhere else or it is widely known, but since I couldn't find solution myself most likely there are some people who still have problem with under performing GTX970 on Windows 10.
All results are given on ethermine pool mining.
1. Normally by default I had something like ~4MH/s using Genoil's miner that I forked and built for Win64. Changing CUDA to OpenCL didn't do any difference.
2. So I downgraded my nvidia drivers to 348.xx and later to 347.52 and I was using precompiled Genoil's miner built with CUDA 6.5. With that changes I had something like 15MH/s. Later I found out that I could use my own Genoil's miner build, built with latest CUDA SDK 8.5 (I think it was 8.5, sorry if that is wrong) with the same results.
3. Since one week or two hashrate dropped drastically with the same setup to average ~8-10 MH/s. So I started to look for other solution.
4. On some reddit thread I found out about new feature in nvidia settings - Optimize for Compute Performance
so I installed back newest nvidia drivers (I have now 385.41) and set this option to on
and also Threaded Optimization
5. After that I have ~18-20MH/s using my own Genoil's miner build, built with latest CUDA SDK. In general I am using now HEAD of everything without need on downgrading.
If anyone interested here is my batch file for starting the miner:
setx GPU_FORCE_64BIT_PTR 1
setx GPU_MAX_HEAP_SIZE 230
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 230
setx GPU_SINGLE_ALLOC_PERCENT 230
ethminer.exe --farm-recheck 200 -G -S xxx.ethermine.org:4444 -FS xxx.ethermine.org:4444 -O 0xfffffffffffffffffffffffffffffffffffffffffffff.FancyRigName