5 Replies Latest reply on Sep 15, 2015 12:55 AM by code_review

    Need advice on development system

    WalterSnafu
      Seeking advice on the right development approach to use

      <My first post here!>

      I need advice on the right development system to use. I'm looking at coding for a 64-bit multi-core AMD system using C and assembly language. I will need to use special code for loading/freeing cache memory, and for getting many cores to play together, and for optimizing the code for each core.  

      If cost is no limitation, should I go with a purchased (professional?) development system, such as MS Visual Studio?  Or should I try the free software provided on this website? 

      I haven't used Linux, so I'm worried about the learning curve of setting up a dual-boot into Linux/Windows 7, and then also learning Linux, and then learning all the various download packages (concerning AMD & Linux).  At the moment it seems overwhelming. 

      I need practical advice on the pros and cons of the various development approaches.

      Thanks for your help!

       

        • Need advice on development system
          WalterSnafu

          I'm casting about a bit, exploring the AMD developer website.  The various AMD math libraries look juicy, and well documented.  So those look easy to use.

          But I haven't yet found an assembler for the AMD processors.  Is one available?  Or, would I be biting off too much to chew?  Perhaps writing assembly language for the Phenom processors would be too complex?  <I dunno.>

          Thanks for any advice you may give.

           

            • Need advice on development system
              bingo88

              afaik you can use any x64 compatbile assembler (Netwide Assembler/nasm is quite good). According to my understanding of ASM you will have to optimize by yourself at assembly level -- at least I don't know any assembler that does bigger optimizations like a high-level language compiler does. But I'm no asm developer, I don't do much in assembly language

                • Need advice on development system
                  WalterSnafu

                   

                  Originally posted by: bingo88 afaik you can use any x64 compatible assembler (Netwide Assembler/nasm is quite good).


                  Thanks bingo88.  I will look into the Netwide Assembler. 

                  Also, perhaps MS Visual Studio includes an x64 assembler I could consider.  Though I presumed (perhaps incorrectly?) that the Visual Studio compiler/assembler would not be tuned specifically to AMD processors.  I presumed I would need an assembler that included all the extra commands specific to AMD. 

                  I am interested in hearing from experienced programmers about their recommendations for working with AMD processors.  Is Visual Studio good enough? 

                  Or, is the free software available on this website better; does it do better optimization? Is it easier to use?  Is Linux painful to setup (with a dual boot) and use?

                  Thanks for your help.

                    • Need advice on development system
                      bingo88

                      If you are working on assembly level you will have to know all the instructions by yourself so there is no tuning by the assembler itself. Therefore it is independent of the CPU. But to achieve maximum performance you will have to code for a specific CPU and this could be quite different for another CPU! I can recommend having a look at the Performance Optimization Guide you could download from AMD's Devdoc section!

                      I am using Visual Studio on several AMD CPUs and I can't complain about performance so far. Probably it's still a bit away from what you could achieve with Intel CPU + Intel Compiler but the Intel Compiler isn't cheap (and the CPU either )

                      If you're a skilled assembly language programmer, you can do much performance tuning on assembly level anyway (i. e. write inline assembly routines in VC or write external libraries which contain your asm code).

                • Re: Need advice on development system
                  code_review

                  Revised answer

                   

                   

                  WalterSnafu

                  Visual Studio Community 2015 is free (assuming you're not planning on making > $100K in revenue any time soon), and has good support for writing C programs. (Windows 10, however, is not free. I could refer you to someone who sold me a legitimate Windows 10 Pro x64 license key, which I installed using the Windows 10 media creation tool by Microsoft).

                   

                  Visual Studio is the IDE I prefer to use, and lets you easily attach your debugger to a remote Linux virtual machine that runs on the same hardware architecture as yours. You do not need to dual boot.

                   

                  If you choose Windows 10 and Visual Studio 2015, Hyper-V is built into Windows 10 Pro, but I prefer to use Oracle's latest VirtualBox release 5.0.4+ on Ubuntu's minimal ISO.

                   

                  Look around developer.amd.com and you'll find multi-core support libraries for both Windows and Linux.