Re: OpenExr 2.3 - slower write speeds for Uncompressed and Zip1
Kevin Wheatley <[email protected]> Tue, 23 Apr 2019 10:26:18 +0100
| Newsgroups | gmane.comp.video.openexr.devel |
|---|---|
| Message-ID | <CACzQ+uZBZcWuDKoyBfXzfNwWBnm+eGuQfN+MDvP1i3z4X=ORfA@mail.gmail.com> |
--===============4747912835304864016== Content-Type: multipart/related; boundary="0000000000000e245e05872f2ea0" --0000000000000e245e05872f2ea0 Content-Type: multipart/alternative; boundary="0000000000000e245d05872f2e9f" --0000000000000e245d05872f2e9f Content-Type: text/plain; charset="UTF-8" another data point. When I first experimented with adding DWA to Nuke using OpenEXR 2.2.0 I had to patch the configure so I could enable f16c instructions for gcc 4.1.2, after doing so vtune pointed to the copyFromFrameBuffer function when going from half to float for ~30+% of the CPU when reading files from local SSD. (Aside, there were a number of other namespace related fixes that were needed too, all of these are in the latest OpenEXR versions). I came to the conclusion that to make the performance any better it would need a f16c based half to float conversion function rather than going via the LUT, at least for those CPUs supporting those instructions. I also have some notes about testing memory mapped reading, but no conclusions. This was not the case when f16c were disabled as other functions appeared higher in the profile - the total performance was lower without f16c (no surprise), it was only because the other functions got reduced by the f16c that bubbled copyFromFrameBuffer to the top. I didn't try RLE compression. Kevin --0000000000000e245d05872f2e9f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>another data point.</div><div><br></div><div>When I f= irst experimented with adding DWA to Nuke using OpenEXR 2.2.0 I had to patc= h the configure so I could enable f16c instructions for gcc 4.1.2, after do= ing so vtune pointed to the copyFromFrameBuffer function when going from ha= lf to float for ~30+% of the CPU when reading files from local SSD. (Aside,= there were a number of other namespace related fixes that were needed too,= all of these are in the latest OpenEXR versions). I came to the conclusion= that to make the performance any better it would need a f16c based half to= float conversion function rather than going via the LUT, at least for thos= e CPUs supporting those instructions. I also have some notes about testing = memory mapped reading, but no conclusions.<br></div><div><br></div><div>Thi= s was not the case when f16c were disabled as other functions appeared high= er in the profile - the total performance was lower without f16c (no surpri= se), it was only because the other functions got reduced by the f16c that b= ubbled copyFromFrameBuffer to the top.</div><div><br></div><div>I didn'= t try RLE compression.<br></div><div></div><div>Kevin<br></div></div> --0000000000000e245d05872f2e9f-- --0000000000000e245e05872f2ea0 Content-Type: image/png; name="image001.png" Content-Disposition: inline; filename="image001.png" Content-Transfer-Encoding: base64 Content-ID: <16a2be062814cff311> X-Attachment-Id: 16a2be062814cff311 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 ti1TpXXjcjJs5jb/Rlqd9Ynk7I6vjTUqF5e3RjSRtz87JCNnbZc5Qy6VtNQU+W3f1bmQv5rSXL7f eUruHfWdvDOqqRQrkiRLV/4oVSqmSPqLm03ZVwZeYtZt+9g3MvvJS+TCtBLSuucqeWPopfLul0fk f35zgew9fEbuf+6HfDuQgGVjXO/YsUPmzJkj6enpojNZ48aNk8qVK0v9+vWlXbt2NmqiKAIIIBAb AvoNtCde8sbzheqmlZDRPep59vlCXu3RwIBlZXZH2/HYnbWkY6tKcjozW75Yf1ye+sc2Gd+rgVxz aTkpkpwkmWezZfLbe8wlOC/M7vja2Pf2mtLlxqpm1urZ13fIsw/WlzZXVJBeEzaadviWd0Y2keqV i8uWvael1gXFZfq7e+Xl93L/4sqnE66Qr747Lo9N2SxfTGoum/ecki4jv5P3nmkq8/59ULq3rya/ 7rUqaLcTsGx8IjRU6dShfpOQBQEEEEgEAa89X0hD1vynGicCvWNttDu7M/Du2vKHay+Qf39z1IQL XdpfnSr331LdBK2iRZJkUp+Gcuh4lrR/fI0nZncCQ+TyF1vIoWNnpcuIb+WvD9U392Ll/SalznTp OCpWNEl2HTwjtz65Lpe3ztyN6H6h/OHJdbL70Bl595mmUiIlWc6dy5HVm0/IlY3KyvLvjpt/1WPT 7lPmUmHgQsBybAhTEQIIIBB/Aolw/0789VruFtmd3dHZmiLJIkczsuTHjCyZvGCPCVuBy2cTr5Cd B87I/z79rSdmdwLH6bhHGkirxj9PhOj9UjkicvVDK3Nt/9/TG0mDGiXl2IlzUq1SiqzbekL+9MwG f5mZAy6WWlWKy/X9v/G/9sz99WTDjpNSu2oJ+e3lFeTnO7VEftdvtSwc1VRuGbiWgBXvHybahwAC CDglQMBySjJ69diZ3fn9ryrLkHvryPGT5+TLb4+bIKGzNtf2/uVS2B+urSyDutQx9zi99ekhT8zu 5DdO61UrIa8PuVS27zstdzz1ba4O+HJyc/l41VFz+fu9Mc2kQpmi0vqRX0KYXh78+oefpO/fNp3X cfq39746LLddd4F8sOKIDJy+VRaNbiodnyBgRW+U884IIIBAjAkQsGKsw/LZXDuzOz3/UEP+dHOa vLb0gPnmnc7a3NCiogyYtkU+/PpHU7veg7TrUKbcP/aXS2LRnt3Jb5zqzetVKhQzM1M683RFwzLy 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 --0000000000000e245e05872f2ea0 Content-Type: image/png; name="image002.png" Content-Disposition: inline; filename="image002.png" Content-Transfer-Encoding: base64 Content-ID: <16a2be062825b16b22> X-Attachment-Id: 16a2be062825b16b22 iVBORw0KGgoAAAANSUhEUgAAAJYAAAAZCAYAAADT59fvAAAACXBIWXMAAAsSAAALEgHS3X78AAAF O0lEQVRo3u1b0ZHiOBB9QvsPGUAGQwb4g19qfRHgjWC8EawngvVEsEwE6y1+qRpPBhDBmgjWBODS fVyz5+tpW7KRYeuKrvKPLctq6an7vUYoYwzudjff9uEaH1FKTwDMa7cKY6riPv3/X1PAKAIQ9XnZ mCqwgCkGEAJ4EJqcAGQAEhvIlNIpA+bemCru+M7GmGpTe879zo2pEkufObsVG1PtW77ZZHv6Xuaw KbusTwkgJ19L1s8GwKze1pgqtHx7BmDDbmfGVKnDWEYJMDJ9LmMMpAsYxcCo7NBXCowmLf3lrH3e 1LblnYQ9l/wOLH22the+absKYBRZvtlnfUrB31BoF3ecw7JtnerXaIC0twHwFcC4w2uPAHKKcre0 zZXHMAXwjebMp40BfKn3S9HxB2uXUFSS1jEEsBAidOkygNEAoFr3fP3hDwDXFEByg++uBwDXud96 uouIgtQBmDbQGD6etzqV6EPeX4ROXUAVNoDqDUBa5xNK6Tnxr7UAroSe3coeldKZMVXuoa/PxKfq duaeCwEEewf+cmiZnxjAR+FeRlGrVEonlFHO9lEpHTK+l7CMc+rBw9/l8MQlhwr5uOiRw4MGLhbc iGPVuc/EA8cKWsYXNXCjiWWcucXvzMaFhXH+9pfWxFyKCS+pkJTLlN1+su0+igqSsoxwWxs8JVJa +Sxwo0t9l1JbYJnfur/8/YNNLQ/JsbhsPboOhuT6C08LNwDTSUiJwcDgSgEc2e1gaEepvPMk+JsK paFeQJc4VkB5uFU9sdpTYNs1Fks4mJTSgSee46wIaYNMmUqcuyqhnpaRKvYFrLAhM/B7CfHiB6bO 6/Zcr9NdCqyFQCy55QAKFsL58047SCl96lii8G0l7c5XIUUMKSb2QjrsQ0cmNP5Hgeyjhey/Njw7 XkIHRkPMVE+U73Fjo539fOWUWHRsv1BKG34B+MXUnjV7NPj7OwXaInW1Xc6q7TKotsvZVYDVcyHm +DMsEXjPkIXTIet2Lw61J8nfH200pNouw2q7LAD8pIj3s9ou82q7DNpS4ZtDKisE4jtmIMk7AHF2 4zRY38UlqdzXK6nEoTbUk4uAIn8Lxi33LaBKhXR7plCv1Xb5Sa92GwlYeQ95mbPCXNyRwPPvnTwQ 98UF4MqV0s9sAh8HAkAkbGybeuULP2PAOPYpEdiMIpJtHtJqu8x8pUL+K/2UpKtr2lxb+iu67PKG 37+6chkpRfimDDHe1/9sJx72xlRB/RKU4NRB2fvYBJKNAURegEV5/CiQ3sQysWHDRCYWlTmmdNWm di4SB0RcowFBFTak16zH/Eu1wHgAXjhz5Y0+ybu0mF+U0oVSOqo7qZQOldIZgO8Ct3oWzmdJk51K 4CIw83B97KNULarJiT8ppQN2hfSDs+T70wUHIBMhcqS4jU28nSA1psoEXnImvt/wz/EQWzcH6QAf EUze95j6TGvRaN4gAi5JCwlFrj7i4muHtodLeBHVAl8YrVgrpROPp3VdC8WF13IDgaLvDj+gveqc QC72jfFvUXfcU3LfLCU6+t5lE/CfpjYex+kSAU8ANt7rWASuvwQHbdK49acTehagvZIsgSry4JN0 SM6HnVx87xK1hMVf+Crw6tUuF7jcO0qkV7vyA6mltwvUU1NanJFaiRqk/5G4U+oaqmny58StYshn 6UEgSC0li65+RwLXK3sKhIIESeYAKD7OvUNUCYSxt83F3lVB69UuouJozDLEkUCVAYC61t+/6HDf pEaKffUbCIT7blewWqW91Kvdf8Cp7v8rvNsQ9jcdsVe3hljoOQAAAABJRU5ErkJgggA= --0000000000000e245e05872f2ea0-- --===============4747912835304864016== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Openexr-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/openexr-devel --===============4747912835304864016==--