據我所知,JIT不會將MSIL編譯爲將使用x86上的MMX指令的本機機器碼。如果這是真的(因爲我很難找到關於此問題的最新信息),那麼我想要一種在我的代碼中使用MMX的方法。我正在研究一個將要做幾乎所有單精度浮點數乘法(它是人工神經網絡)的應用程序。我基本上有這個問題的幾個問題。使用託管C++的MMX
我的第一個問題是,如果我在同一個項目中混合使用託管代碼和非託管代碼,是不是所有編譯到MSIL都是因爲「It Just Works」?如果我將非託管部分製作爲靜態或動態庫,編譯它們,並將它們用於託管項目,我會獲得最佳性能嗎?
我也研究過使用我的GPU與OpenCL(或CUDA,但它不會在ATI :()上工作,但如果我這樣做,編譯的GPU代碼不會被調用總之,我只是尋找最好的方式來獲得最快的浮點關節,同時仍然能夠使用我的託管GUI和多線程,並使用像MMX這樣的擴展似乎是我最好的選擇(如果我只需要使用CPU)。什麼是最好的方式有可能會去這樣做這樣的事?
感謝。
我沒有你的問題的直接答案,但我想知道你是否可能不改進神經網絡算法或其使用,以提高性能?你可能需要更多的速度,但是我問,因爲我看到許多神經網絡項目都遭受了糟糕的神經架構,參數過度探索,數據設計較弱等等。 – Predictor 2011-02-11 11:37:22