Please, add the -n parameter to the diskspd command line when 1 thread benchmark is started;
this is the way one thread applications run;
otherwise the benchmark will be set to run on the CPU 0 (default affinity)
This may be what the original poster found.
This happens only in Windows 10, single thread test and the size of read/write is small. e.g. a lot of random synchronous read.
In this case, set the affinity in fact increases the read/write performance.
A closer look at it, the average time of Readfile()/Writefile() is shorter with the affinity set.
Setting an affinity mask for a process or thread can result in threads receiving less processor time, as the system is restricted from running the threads on certain processors. In most cases, it is better to let the system select an available processor.
If the new thread affinity mask does not specify the processor that is currently running the thread, the thread is rescheduled on one of the allowable processors.
I will consider this issue.