Jump to content

Librerie Intel MKL, possibile fix in studio per cpu AMD


tomnic

Recommended Posts

  • Moderators

Ciao a tutti, al solito non riesco a stare fermo nel cercare di risolvere i problemi di macOS con le cpu AMD in svariate app che usano tali librerie di calcolo (Suite Adobe, Discord, Matlab, e alcune release di DaVinci Resolve) e sono incappato in questo articolo: 

 

https://danieldk.eu/Posts/2020-08-31-MKL-Zen.html

 

La soluzione proposta per usare il codice ottimizzato x86_64 Intel pur con cpu AMD è valida e perfettamente funzionante in Linux come si legge, e allora mi sono chiesto: perché non provare ad adattarla a macOS così da cercare di ovviare ai problemi di compatibilità rimasti? Io in programmazione sono a livello pippone ma qualcosa son riuscito a tirar fuori dal cilindro!!!

 

Per prima cosa da terminal ho installato brew, "ponte" tra il mondo linux e macOS

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

In seguito ho installato GCC usando brew secondo questa miniguida: https://discussions.apple.com/thread/8336714

 

Poi ho compilato come libreria dinamica per macOS questo semplice programmino in C con gcc, citato in tale link:

 

int mkl_serv_intel_cpu_true() {
  return 1;
}

 

il comando che ho usato per la compilazione è, ipotizzando che il programmino in c di cui sopra sia stato salvato in un file testuale fakeintel.c:

 

 gcc -dynamiclib /Users/tomnic/Desktop/fakeintel.c -o libfakeintel.dylib

 

...ed ho ottenuto la dylib che ho chiamato libfakeintel.dylib (che allego per comodità).

 

Leggo che l'equivalente in macOS di quello che nell'articolo è la variabile di ambiente LD_PRELOAD è DYLD_INSERT_LIBRARIES (http://web.archive.org/web/20121108142727/https://blogs.oracle.com/DatabaseEmporium/entry/where_is_ld_preload_under).

 

Possiamo quindi fare in modo che questa libreria venga iniettata in ogni eseguibile unix temporaneamente tramite questo comando:

 

launchctl setenv DYLD_INSERT_LIBRARIES /Users/tomnic/Desktop/libfakeintel.dylib

 

Per comodità io tengo sul desktop la libreria suddetta, modificate la vostra path in accordo a dove la piazzerete, se vorrete aiutarmi ovviamente 😉

 

Io sto provando Adobe After Effects ultimissima versione, la funzione è quella di camera tracking, funzione per cui i soliti trick noti non funzionano più.

 

I risultati ad ora sono "promettenti":

 

1. Senza libreria personalizzata il tracking si blocca allo 0% dell'analisi per far poi schiantare il programma in caso di cancellazione del comando;

2. Con la libreria personalizzata il tracking parte e completa l'analisi al 100% tuttavia poi il programma crasha miseramente e nel log leggo il seguente errore:

 

<1641966> <Tracciatore videocamera 3D Profile Data> <5> Analysis Started (Tutorial - Tracking.mov)
selector.max_count: 500.000000

selector.spacing: 29.000000

selector.half_winx: 15.000000

selector.half_winy: 15.000000

selector.border: 12.000000

selector.threshold: 0.010000

selector.min_eig: 1.000000

selector.max_eig: 6000.000000

selector.presmoothing: 1.000000

selector.presmooth_factor: 0.100000

selector.eig_ratio_threshold: 15.000000

selector.down_sample_factor: 1.000000

tracker.max_iterations: 25.000000

tracker.tolerance_translation: 0.100000

tracker.tolerance_affine: 0.050000

tracker.pyramidal_levels: 5.000000

tracker.half_win_x: 15.000000

tracker.half_win_y: 15.000000

tracker.color_correction_translation: 0.000000

tracker.color_correction_affine: 2.000000

tracker.affine_verification: 1.000000

tracker.tolerance_color_lambda: 0.050000

tracker.tolerance_color_delta: 1.000000

tracker.tolerance_min_correlation: 0.700000

tracker.tolerance_primary_color_threshold: 5.000000

tracker.kill_tracks_shorter_than: 5.000000

<1641966> <StateBinaryConverter> <5> solveCompleteB = 0
<1642537> <StateBinaryConverter> <5> solveCompleteB = 0
<1641966> <AnalyzerServer> <5> Create Temp Project: /var/folders/qw/wdfjy1tx0z3569g9v0gygxw80000gn/T/tmpAEProject-569fa6b4-c9fb-43f2-a2a4-5ea9f85fde5b.aep
<1641966> <AnalyzerServer> <5> Start 7fa4a8b1-fb7a-4570-b4f7-fc33bfce2803
<1641966> <Tracciatore videocamera 3D Profile Data> <5> Analysis Time (seconds) : 5,22 (Tutorial - Tracking.mov)
<1641966> <AnalyzerServer> <5> End 7fa4a8b1-fb7a-4570-b4f7-fc33bfce2803
<1641966> <AnalyzerServer> <5> Delete Temp Project: /var/folders/qw/wdfjy1tx0z3569g9v0gygxw80000gn/T/tmpAEProject-569fa6b4-c9fb-43f2-a2a4-5ea9f85fde5b.aep
<1642537> <StateBinaryConverter> <5> solveCompleteB = 0
[19817:1642194:20210530,203115.482236:WARNING process_memory_mac.cc:93] mach_vm_read(0x7ffeefbff000, 0x2000): (os/kern) invalid address (1)
[19817:1642194:20210530,203115.593841:WARNING mach_o_image_segment_reader.cc:173] section.segname incorrect in segment __TEXT, section 
???
???
???
???,
???
???
???
??? 0/11, load command 0x19 0/22, module /Applications/Adobe After Effects 2021/Adobe After Effects 2021.app/Contents/Frameworks/LogSession.framework/Versions/A/Resources/libConfigurer64.dylib, address 0x12f534000
LaunchHeadlightsCrashProcessor result: -11
[19817:1642194:20210530,203119.056962:WARNING crash_report_exception_handler.cc:346] UniversalExceptionRaise: (os/kern) failure (5)

[1]  + illegal hardware instruction  DYLD_INSERT_LIBRARIES=/Users/tomnic/Desktop/libfakeintel.dylib 

 

...mi pare di capire che l'errore può stare nel codice della mia libreria che esegue del codice illegale... forse devo compilarla con g++? Forse devo includere altro codice nel miniprogrammino C di cui sopra?

 

Vi va di aiutarmi perché la direzione non pare totalmente sbagliata?

 

Per ripristinare l'hackintosh al normale funzionamento basta riavviare, non abbiate paura 😉

 

 

 

libfakeintel.dylib.zip

Edited by tomnic
correzioni
  • Like 3
Link to comment
Share on other sites

  • Moderators

Intanto con Photoshop 22.3.1 (CC 2021) grazie solamente a: 

 

launchctl setenv DYLD_INSERT_LIBRARIES /Users/tomnic/Desktop/libfakeintel.dylib

 

funziona di default:

 

- Apertura di file JPG senza sovrascrivere cameraraw (io ho l'ultima installata, la 13.2);

- Filtro fluidifica;

- Strumento seleziona oggetto.

 

Allego video che illustra tali funzioni!

 

 

Cat03wow.thumb.jpg.b20544ed771321afd2290a2f25212524.jpg

 

Questo è @fabiosun che è commosso dai progressi!!!

  • Like 2
Link to comment
Share on other sites

  • Gengik84 pinned and featured this topic
  • Moderators
Il 2/6/2021 at 22:45, tomnic ha scritto:

Intanto con Photoshop 22.3.1 (CC 2021) grazie solamente a: 

 


launchctl setenv DYLD_INSERT_LIBRARIES /Users/tomnic/Desktop/libfakeintel.dylib

 

funziona di default:

 

- Apertura di file JPG senza sovrascrivere cameraraw (io ho l'ultima installata, la 13.2);

- Filtro fluidifica;

- Strumento seleziona oggetto.

 

Allego video che illustra tali funzioni!

 

 

 

Cat03wow.thumb.jpg.b20544ed771321afd2290a2f25212524.jpg

 

Questo è @fabiosun che è commosso dai progressi!!!

 

ottimo😃

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • There are no registered users currently online
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.