MATLAB MKL Codepath Tweak увеличава производителността на AMD Ryzen MKL значително



MATLAB is a popular math computing environment in use by engineering firms, universities, and other research institutes. Some of its operations can be made to leverage Intel MKL (Math Kernel Library), which is poorly optimized for, and notoriously slow on AMD Ryzen processors. Reddit user Nedflanders1976 devised a way to restore anywhere between 20 to 300 percent performance on Ryzen and Ryzen Threadripper processors, by forcing MATLAB to use advanced instruction-sets such as AVX2. By default, MKL queries your processor's vendor ID string, and if it sees anything other than 'GenuineIntel…, ' it falls back to SSE, posing a significant performance disadvantage to 'AuthenticAMD' Ryzen processors that have a full IA SSE4, AVX, and AVX2 implementation.

Настройката, предназначена да бъде ръчно приложена от потребителите на AMD Ryzen, принуждава MKL да използва AVX2, независимо от резултата от заявката на CPU Vendor. Ощипването е толкова просто, колкото е мощно. Опростен 4-редов пакетен файл на Windows с набор от аргументи стартира MKL в режим AVX2. Можете също така да направите ощипването 'постоянно', като създадете променлива на системната среда. Променливата на средата ще се прилага за всички случаи на MATLAB, а не само за тези, породени от пакетния файл. Nedflanders1976 също публикува сценарий за сравнение, който подчертава въздействието на AVX2 върху производителността, но можете да използвате собствените си скриптове и да публикувате резултати.
Source: Nedflanders1976 (Reddit)