据我所知,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