Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何安排作业在FPU/AVX上运行?_C#_.net_F#_Threadpool_Windows Server 2008 R2 - Fatal编程技术网

C# 如何安排作业在FPU/AVX上运行?

C# 如何安排作业在FPU/AVX上运行?,c#,.net,f#,threadpool,windows-server-2008-r2,C#,.net,F#,Threadpool,Windows Server 2008 R2,.NET线程池使用映射到逻辑核心的线程。反过来,在具有HT的机器上,这意味着为每个处理器核心调度两个HTs 是否有一个线程池,其中的线程是通过与物理内核的关联而不是HTs创建的 这是为了避免在CPU上运行的浮点型应用程序中出现额外的争用。开发人员只需使用自定义调度程序,就可以运行任务,每个FPU/AVX单元运行一个任务。如果这确实是一个问题,为什么不在bios中禁用HT?因为工作负载会发生变化。有时,它是整数密集型的,HT带来的速度几乎是它的两倍。(另一个评论可能是使用GPU。)我的下一个问题是

.NET线程池使用映射到逻辑核心的线程。反过来,在具有HT的机器上,这意味着为每个处理器核心调度两个HTs

是否有一个线程池,其中的线程是通过与物理内核的关联而不是HTs创建的


这是为了避免在CPU上运行的浮点型应用程序中出现额外的争用。开发人员只需使用自定义调度程序,就可以运行任务,每个FPU/AVX单元运行一个任务。

如果这确实是一个问题,为什么不在bios中禁用HT?因为工作负载会发生变化。有时,它是整数密集型的,HT带来的速度几乎是它的两倍。(另一个评论可能是使用GPU。)我的下一个问题是:如果你禁用HT,它能在多大程度上改进你的应用程序。2倍是理论上的,还是你直接用你的代码来衡量的?我在这里为最后10%而奋斗。这并不是一个惊人的进步,但确实有一点帮助。另一件事是,如果你的应用程序是FP重的,不要用C。您应该使用C或C++和英特尔编译器来获得更好的性能。