New Dev Box - ThreadRipper

Discussion in 'Processors and motherboards AMD' started by Gomez Addams, Feb 4, 2020.

  1. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    Yee haw ! We got a new dev box in the office and assembled it today. It should be a screamer. It has 64GB of DDR4-4000 memory and a 2TB PCIv4.0 nvme drive. You can see the big copper heat sink of the nvme drive right below the CPU cooler.

    Nothing is installed on it yet but that should be fun. It will dual-boot W10 and Linux. We will do HPC programming using CUDA on it. The video card is a Titan RTX.

    Le photos :
    [​IMG]
    [​IMG]
     
    Last edited: Feb 4, 2020
    OnnA, yasamoka, Evildead666 and 2 others like this.
  2. anticupidon

    anticupidon Ancient Guru

    Messages:
    4,779
    Likes Received:
    1,352
    GPU:
    Polaris/Vega/Navi
    Amazing machine.
    Development should be a pleasure and making that workstation purr... Geeking out, I tell you.
    Very nice to have those "nudes"shared here.
     
  3. Kool64

    Kool64 Master Guru

    Messages:
    550
    Likes Received:
    194
    GPU:
    Gigabyte GTX 1070
    is your memory actually running at 4400?
     
  4. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    No, I need to edit that. Thanks for pointing it out. It's actually 4000 memory and it's running at 3600 because of the divisor thing.
     

  5. Kool64

    Kool64 Master Guru

    Messages:
    550
    Likes Received:
    194
    GPU:
    Gigabyte GTX 1070
    3600 on 8 sticks is really good.
     
  6. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    Here is an interesting shot. I ran my program on this box and it set a record as the new speed champion for us. Here's what the task manager looks like when the program is running.

    [​IMG]
     
    yasamoka likes this.
  7. Kool64

    Kool64 Master Guru

    Messages:
    550
    Likes Received:
    194
    GPU:
    Gigabyte GTX 1070
    And only 58% utilization!
     
  8. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    What is interesting about this is I configured the program to use 58 threads, coincidentally, and it seemed to fully utilize only 32. I think this is the W10 Pro thread limit in action.
     
  9. Astyanax

    Astyanax Ancient Guru

    Messages:
    5,278
    Likes Received:
    1,573
    GPU:
    GTX 1080ti
    No, this is the application using outdated XP compatible cpu masks.
     
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,836
    Likes Received:
    5,791
    GPU:
    GeForce GTX 1070
    Can you both elaborate what are those things - "W10 Pro thread limit" and "XP compatible cpu masks"?
     

  11. Astyanax

    Astyanax Ancient Guru

    Messages:
    5,278
    Likes Received:
    1,573
    GPU:
    GTX 1080ti
  12. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    That is entirely likely. It uses OpenMP to distribute the threads and VisualStudio's support for OpenMP is several versions behind and seems to have been essentially dropped. Regardless of this behavior, the 3970 is still faster than any other box we have run the program on.
     
  13. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,836
    Likes Received:
    5,791
    GPU:
    GeForce GTX 1070
    That has nothing to do with Windows XP. If has to do everything with x86 process on x64 OS. And it is called a limitation, not a compatibility.

    You can always check what CPU architecture is set for the projects in solution - x86 or x64. In case OpenMP libraries offer both x86 and x64 you can always switch between these.
    Also you can always check whether process is x86 or x64 in Task Manager.
     
    386SX likes this.
  14. Gomez Addams

    Gomez Addams Active Member

    Messages:
    91
    Likes Received:
    55
    GPU:
    2 x Titan RTX, 24GB
    The 32-bitness of the app had never occurred to me. That is precisely the issue. Thanks. I think the reason is development on that version has stopped and we are working on the next generation which will be 64-bit so I had forgotten it was 32-bit.
     
  15. Astyanax

    Astyanax Ancient Guru

    Messages:
    5,278
    Likes Received:
    1,573
    GPU:
    GTX 1080ti
    It is XP/2003 compatibility when keeping to XP origin API's.

    On Win32 its 32
    On WoW64 using legacy Win32 affinity masks its 32
    on WoW64 using Windows 7+ Processor Groups, 64+ is possible
     

  16. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,836
    Likes Received:
    5,791
    GPU:
    GeForce GTX 1070
    Where is info about legacy affinity masks ?

    How?
     
  17. Astyanax

    Astyanax Ancient Guru

    Messages:
    5,278
    Likes Received:
    1,573
    GPU:
    GTX 1080ti
    the win32 method is the legacy method under wow64

    the limit on pure 32bit os's is actually artificial, as the cpu affinity is represented by A bitmask. This has always been 64bit and able to address up to 64cores since Windows NT days.

    [​IMG]

    Since its artificial, developers who are less inclined to stay within the limits windows base api's permit are able to address more cores and one such way is by managing threads and abusing processor groups that are intended for 64+ cores to make 2 processor groups to work around the loosely enforced restriction and make 64 core processors function on WoW64

    Code:
    +------------------------------------------------+----------------+----------------+
    |                    Methods                     | 32-bit process | 64-bit process |
    +------------------------------------------------+----------------+----------------+
    | GetSystemInfo->dwNumberOfProcessors            |             32 |             36 |
    | GetNativeSystemInfo->dwNumberOfProcessors      |             36 |             36 |
    | GetLogicalProcessorInformation                 |             36 |             36 |
    | GetProcessAffinityMask.processAffinityMask     |             32 |             32 |
    | GetProcessAffinityMask.systemAffinityMask      |             32 |             32 |
    | omp_get_num_procs                              |             32 |             36 |
    | getenv("NUMBER_OF_PROCESSORS")                 |             36 |             36 |
    | GetActiveProcessorCount(ALL_PROCESSOR_GROUPS)  |             64 |             72 |
    | GetMaximumProcessorCount(ALL_PROCESSOR_GROUPS) |             64 |             72 |
    | boost::thread::hardware_concurrency()          |             32 |             36 |
    | Performance counter API                        |             36 |             36 |
    | WMI                                            |             72 |             72 |
    | HARDWARE\DESCRIPTION\System\CentralProcessor   |             72 |             72 |
    +------------------------------------------------+----------------+----------------+
    
    In this code block, a dual CPU Intel Xeon E5-2699 v3 @ 2.30GHz totalizing 36 cores and 72 threads system is being used to test different methods of finding how many processrs are present.
     
  18. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,836
    Likes Received:
    5,791
    GPU:
    GeForce GTX 1070
    @Astyanax


    https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups

    - as you can see there is no secret affinity mask, there are rules which applies to all processes. When process wants to override the rules it has to call Win API functions.

    Also WOW64 topics do not state legacy on WinAPI functions
    https://docs.microsoft.com/en-us/windows/win32/winprog64/running-32-bit-applications
    WOW64 is emulation of 32-bit OS.

    How do you imagine that? How programmer can overcome the WinAPI functions limitations?
     
  19. Astyanax

    Astyanax Ancient Guru

    Messages:
    5,278
    Likes Received:
    1,573
    GPU:
    GTX 1080ti
    Anything from the Win32 era as limited by x86-32 processors is legacy functions, deprecated or otherwise.


    an emulation, but not feature locked, ie, you can use 4GB addresses where Win32 was only capable of up to 3GB and only when you took 1GB away from the kernel.

    Processor groups are not unuseable in WoW64, however you do have to force 32 core processor groups using bcdedit to make 64 cores available to a 32bit app in that set up.

    The same way they have for 30 years :rolleyes:,

    The issue with core counts with WoW64 is as follows,
    32 core processor groups circumvents this problem.
     
    Last edited: Feb 21, 2020
  20. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,836
    Likes Received:
    5,791
    GPU:
    GeForce GTX 1070
    Don`t be shy, say how exactly.
     

Share This Page