full screen background image
Не пропусти
Как оформить зарубежную банковскую карту из России и оплачивать ChatGPT, App Store, Google Play и другие сервисы — Hi-News.ru»>/**/ article{display:block}body{font-size:14px;line-height:1}ol,ul{list-style:none;padding:0;margin:0}html,body{font:400 -apple-system,BlinkMacSystemFont,sans-serif}html,body,div,span,iframe,h1,p,a,img,ins,strong,b,form,article,time{margin:0;padding:0;border:0;font-size:100%;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,sans-serif;vertical-align:baseline;-webkit-font-smoothing:antialiased}body{font-size:14px;line-height:1;min-width:1124px}ol,ul{list-style:none;padding:0;margin:0}b,strong{font-weight:700}img{overflow:hidden;height:auto;max-width:100%;font:400 10px -apple-system,BlinkMacSystemFont,sans-serif}p{color:#000;margin-bottom:15px;font:400 20px/1.5 -apple-system,BlinkMacSystemFont,sans-serif}h1{color:#000;margin:0 0 28px 0;font:700 54px/1 -apple-system,BlinkMacSystemFont,sans-serif}.clearfix:before{content:»»;display:table}.clearfix:after{content:»»;display:table;clear:both}#page{position:relative;width:1090px;margin:0 auto;padding:0 20px}#header{margin:20px auto 0}#header .logo{display:flex;margin-bottom:22px;position:relative;width:560px}.logo-icon{margin-right:11px}.logo .icon_logo{font-size:28px;height:1.18em}.logo-link{display:inherit}.logo-name{display:flex;font:32px/1 -apple-system,BlinkMacSystemFont,sans-serif;margin:0}.logo-name-green{color:#48d900;font-weight:600}.logo-name-black{color:#000;font-weight:300}.logo-name-dash{color:#000;margin:0 1px;font-weight:300}a{color:#F50;text-decoration:none;font-weight:500}#header .user{position:absolute;top:6px;right:20px}#header .user.anonymous-user .icon-lock{background:url(/wp-content/themes/101media/img/login.svg) no-repeat;width:18px;height:21px;display:block}#header form{position:absolute;right:60px;top:-2px}#header form input{border:1px solid #eef1f5;border-radius:63px;outline:none;padding:8px 35px 9px 20px;width:216px;-webkit-appearance:none;font:400 16px/19px -apple-system,BlinkMacSystemFont,sans-serif}#header form #searchsubmit{background-image:url(/wp-content/themes/101media/img/search_.svg);background-size:cover;opacity:0.15;border:none;height:15px;padding:0;position:absolute;right:16px;text-indent:-9999px;top:13px;width:15px}.trand{background-color:#000}.menu-trends-container{background-color:#000;padding:20px 35px 18px;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;margin-bottom:10px}.menu-trends-container .trand{height:auto;overflow:hidden;background-color:transparent;background-position:14px center;padding-right:0;width:auto}.menu-trends-container .trand li{display:inline-block;padding:0;height:auto}.menu-trends-container .trand li a{color:#fff;text-decoration:none;display:inline-block;padding-right:20px;font:700 18px/23px -apple-system,BlinkMacSystemFont,sans-serif}#content{width:calc(100% — 340px);float:left;margin-top:5px}#i10foreign{width:calc(100% — 340px)}.item .info{color:#000;margin-top:5px;font:400 15px/24px -apple-system,BlinkMacSystemFont,sans-serif;margin-bottom:10px}.info{position:relative}.breadcrumbs{white-space:nowrap;margin-bottom:10px}.breadcrumbs li{display:inline}.breadcrumbs li+li:before{content:»;position:relative;display:inline-block;border-top:1px solid #CAD1D9;border-right:1px solid #CAD1D9;width:6px;height:6px;top:-1px;right:2px;margin:0 4px;transform:rotate(55deg) skew(20deg)}.breadcrumbs li a{color:#CAD1D9;font:400 15px/24px -apple-system,BlinkMacSystemFont,sans-serif}.breadcrumbs__logo span{font-size:0}.breadcrumbs__logo img{margin-bottom:-2px}.item .info .author{margin-left:0;font-weight:600;display:inline-block;margin-bottom:0}.item .info .prop-comments{font-size:14px;color:#000;font-weight:400;margin-left:6px;padding-right:20px;position:relative;display:inline-block}.item .info .prop-comments::before{content:»;background-color:rgba(172,182,191,0.2);position:absolute;top:0;bottom:0;margin:auto;right:7px;width:5px;height:5px;border-radius:50%}.item .info .prop-comments svg{vertical-align:middle;margin-right:4px}.item .info .post__date-inner{display:inline-flex}.item .info .post__date-update{display:inline-block;color:#959EA6;margin-left:5px}.text{color:#000;font:400 16px/22px -apple-system,BlinkMacSystemFont,sans-serif}#sidebar{width:300px;float:left;margin-left:40px}.banners-center{text-align:center}.banner-sidebar{margin:20px 0 20px}.sidebar-banner-telegram{display:block;border:1px solid #eee;border-radius:3px;padding:14px 24px;font-size:14px;line-height:normal;background:none;position:relative;overflow:hidden}.sidebar-banner-telegram strong{margin-bottom:6px;color:#151515;text-transform:uppercase;letter-spacing:.08em;word-wrap:break-word;font:700 16px -apple-system,BlinkMacSystemFont,sans-serif}.sidebar-banner-telegram span{display:block;color:#aaa;font:300 14px/20px -apple-system,BlinkMacSystemFont,sans-serif}.sidebar-banner-telegram svg{position:absolute;bottom:-20px;right:-20px}.single-title{margin-bottom:15px}#post{margin-top:-4px}.single .item .info{margin-top:0;font-size:19px}.single .item .breadcrumbs li a{font-size:19px}.single .item .breadcrumbs__logo img{width:20px;height:20px;margin-bottom:-4px}.single .item .breadcrumbs li+li:before{width:8px;height:8px}.single .item .info .prop-comments{font-size:18px}.searchform input{border:1px solid #f2f2f2;outline:none;padding:10px 0 10px 12px;width:180px;margin-bottom:7px;font:400 12px/15px -apple-system,BlinkMacSystemFont,sans-serif}.icon{display:inline-block;vertical-align:middle;size:1em;width:1em;height:1em;fill:currentColor}#main.main-section{display:flex;flex-wrap:wrap;margin-bottom:60px}.adsense{position:relative}.adsense{margin:40px 0}#toc_container{background:none;width:100%;border:none;font-size:22px;padding:0;margin-bottom:1em;font-weight:400}#toc_container p.toc_title{font-size:38px;line-height:1.2;text-align:left;margin:0;padding:0;font-weight:700}#toc_container p.toc_title+ul.toc_list{margin-top:23px}#toc_container ul,#toc_container li{margin:0;padding:0}#toc_container .toc_list li{font-size:22px;line-height:26px;font-weight:400}#toc_container .toc_list li:not(:last-child){margin-bottom:18px}#toc_container .toc_list a{display:flex;color:#000;font-size:inherit;position:relative;padding-bottom:15px;border-bottom:1px solid rgba(213,221,230,0.5);font-weight:400}#toc_container .toc_list .toc_number{font-size:inherit;color:#cad1d9;margin-right:10px}#toc_container .toc_list .toc_number:after{content:’.’}#sidebar .widget{position:sticky;position:-webkit-sticky;top:25px}.wp-caption{max-width:100%}.wp-caption-text{font-size:18px;line-height:19px;color:#999;margin:15px 0 25px}.single-post .text img{display:block}.single-post .text img{background-color:#f6f6f6}.text a{color:#F50}::-moz-focus-inner{border:0}.text{color:#000;font:400 16px/22px -apple-system,BlinkMacSystemFont,sans-serif}.clearfix:before{content:»»;display:table}.clearfix:after{content:»»;display:table;clear:both}.menu-trends-container .trand{background-position:14px center}.widget{margin-bottom:32px}.text ul{font-size:20px;line-height:1.5;font-weight:400;margin:0 0 30px 0}#comments{font:700 30px -apple-system,BlinkMacSystemFont,sans-serif;color:#0f0f0f;text-transform:uppercase;letter-spacing:0.08em}#comments{margin:0 15px 5px 0}.comment-section-header{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:25px}.comment-section-header .comment-btn{width:100%;display:flex;align-items:center}.comment-section-header #comment-btn-collapse{height:auto;position:relative;color:#cad1d9;font-size:14px;font:400 14px/16px -apple-system,BlinkMacSystemFont,sans-serif;text-align:center;background:none;text-transform:inherit;letter-spacing:inherit;text-shadow:none;padding:0}.comment-section-header #comment-btn-collapse:before{position:absolute;content:»;bottom:-1px;left:0;width:100%;height:6px;right:0;background-image:linear-gradient(to right,rgba(202,209,217,0.5) 58%,rgba(255,255,255,0) 0%);background-position:bottom;background-size:5px 1px;background-repeat:repeat-x}.comment-section-header #comments{display:flex;align-items:center;min-height:44px}.comment-section .scroll-to-new-comment{height:auto;padding:9px 20px;border:1px solid rgba(255,85,0,0.2);color:#f50;font:500 16px/24px -apple-system,BlinkMacSystemFont,sans-serif;text-decoration:none;border-radius:3px;text-align:center;background:none;text-transform:inherit;letter-spacing:inherit;text-shadow:none}button{display:inline-block;height:37px;font:700 14px/40px -apple-system,BlinkMacSystemFont,sans-serif;color:#fff;text-decoration:none;padding:0 40px 0 0;outline:none;text-shadow:0 1px 0 rgba(71,117,0,0.5);background:transparent url(/wp-content/themes/101media/img/button-square-green.png) no-repeat right top;border:none;margin:0;text-transform:uppercase;letter-spacing:0.08em;width:auto;overflow:visible}button::-moz-focus-inner{border:0;padding:0;margin:0}.banners-center{text-align:center}.news-img{position:relative;padding-bottom:60.8%;max-width:100%;display:block}.foreign-posts{clear:both;margin-top:60px;border-top:1px solid #e6e7e3;width:1000px;margin-bottom:50px}.foreign-posts .foreign_post_title{font:700 30px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:2.4px;text-align:left;color:#000;margin-top:33px;text-transform:uppercase}.foreign-posts .foreign-posts-list{min-height:250px}@media (min-width:625px) and (max-width:649px){.item iframe:not(.iframe){height:328px}}@media (min-width:600px) and (max-width:624px){.item iframe:not(.iframe){height:314px}}@media (min-width:575px) and (max-width:599px){.item iframe:not(.iframe){height:300px}}@media (min-width:550px) and (max-width:574px){.item iframe:not(.iframe){height:286px}}@media (min-width:525px) and (max-width:549px){.item iframe:not(.iframe){height:272px}}@media (min-width:500px) and (max-width:524px){.item iframe:not(.iframe){height:258px}}@media (min-width:475px) and (max-width:499px){.item iframe:not(.iframe){height:244px}}@media (min-width:450px) and (max-width:474px){.item iframe:not(.iframe){height:230px}}@media (min-width:425px) and (max-width:449px){.item iframe:not(.iframe){height:216px}}@media (min-width:414px) and (max-width:424px){.item iframe:not(.iframe){height:206px}}@media (min-width:400px) and (max-width:413px){.item iframe:not(.iframe){height:206px}}@media (min-width:375px) and (max-width:399px){.item iframe:not(.iframe){height:198px}}@media (min-width:325px) and (max-width:349px){.item iframe:not(.iframe){height:170px}}@media (max-width:324px){.item iframe:not(.iframe){height:156px}}(function(w){«use strict»;var loadCSS=function(href,before,media,attributes){var doc=w.document;var ss=doc.createElement(«link»);var ref;if(before){ref=before;}else{var refs=(doc.body||doc.getElementsByTagName(«head»)[0]).childNodes;ref=refs[refs.length-1];}var sheets=doc.styleSheets;if(attributes){for(var attributeName in attributes){if(attributes.hasOwnProperty(attributeName)){ss.setAttribute(attributeName,attributes[attributeName]);}}}ss.rel=»stylesheet»;ss.href=href;ss.media=»only x»;function ready(cb){if(doc.body){return cb();}setTimeout(function(){ready(cb);});}ready(function(){ref.parentNode.insertBefore(ss,(before?ref:ref.nextSibling));});var onloadcssdefined=function(cb){var resolvedHref=ss.href;var i=sheets.length;while(i—){if(sheets[i].href===resolvedHref){return cb();}}setTimeout(function(){onloadcssdefined(cb);});};function loadCB(){if(ss.addEventListener){ss.removeEventListener(«load»,loadCB);}ss.media=media||»all»;}if(ss.addEventListener){ss.addEventListener(«load»,loadCB);}ss.onloadcssdefined=onloadcssdefined;onloadcssdefined(loadCB);return ss;};if(typeof exports!==»undefined»){exports.loadCSS=loadCSS;}else{w.loadCSS=loadCSS;}}(typeof global!==»undefined»?global:this));loadCSS(«https://hi-news.ru/wp-content/themes/101media/style.css?1597665258»,document.getElementById(«loadcss»));loadCSS(«https://hi-news.ru/wp-content/themes/101media/app.css?1611331550»,document.getElementById(«loadcss»));loadCSS(«https://hi-news.ru/wp-content/plugins/tag-sticky-post/css/plugin.css?1541770289»,document.getElementById(«loadcss»)); window.yaContextCb=window.yaContextCb||[]
Search

Представлен OpenCL 3.0: без прошлого нет будущего»

Khronos Group представила предварительные спецификации стандарта вычислений общего назначения с использованием графических и иных процессоров — OpenCL 3.0. Консорциум отметил, что новая версия стандарта призвана обеспечить новые запрашиваемые разработчиками аппаратные функции, а также повысить гибкость развёртывания в целевых средах. Задачи во многом противоположные, так что без компромиссов не обойтись.

Представлен OpenCL 3.0: без прошлого нет будущего"

Последние 15 лет можно смело назвать эпохой роста вычислений общего назначения на ГП. Сегодня прогресс мощности ЦП сильно замедлился, а высокопараллельные расчёты становятся всё более общим явлением. Самые мощные в мире суперкомпьютеры теперь обязательно включают в себя ГП. В это время развивался и стандарт OpenCL — открытая среда программирования ГП и других ускорителей вычислений. Изначально созданная Apple и получившая широкое признание в отрасли, OpenCL была первой (и до сих пор наиболее последовательной) попыткой создания общего открытого API для параллельного программирования. OpenCL был адаптирован для всего: от энергоэффективных встраиваемых процессоров и DSP до графических ускорителей, потребляющих полкиловатта.

Представлен OpenCL 3.0: без прошлого нет будущего"

Сегодня OpenCL не только поддерживается на широком спектре оборудования, но и невероятно актуален даже для текущих событий: это API-интерфейс, используемый в проекте Folding@Home, самом мощном вычислительном кластере в мире, который интенсивно применяется для исследования вариантов борьбы с COVID-19. В то же время эволюция рынка параллельных вычислений не всегда шла в соответствии с планами для Khronos и рабочей группы OpenCL. На ПК стандарт всё ещё находится в подвешенном состоянии. Интерес NVIDIA сдерживается продвижением собственного весьма успешного API CUDA, драйверы AMD OpenCL оставляют желать лучшего, Apple отказывается от OpenCL и переходит на собственный API Metal. Единственным поставщиком, которого, кажется, всерьёз интересует OpenCL, выступает Intel. На мобильных устройствах OpenCL тоже никогда не был широко распространён, несмотря на поддержку большинством мобильных ГП и другими блоками параллельной обработки данных.

Представлен OpenCL 3.0: без прошлого нет будущего"

Поэтому Khronos решила сделать в некоторой степени большой шаг назад и перезапустить экосистему. OpenCL 3.0, последняя версия вычислительного API, делает выводы из прошлого и по сути превращает основной API в форк OpenCL 1.2. В результате всё, что разработано в рамках OpenCL 2.x, теперь стало необязательным: поставщики могут (и, как правило, будут) поддерживать эти функции, но оно больше не требуются для соответствия основной спецификации. Вместо того чтобы поддерживать каждую функцию OpenCL, независимо от её полезности или бесполезности для конкретной платформы теперь поставщики будут сами решать, какие продвинутые функции они хотели бы поддерживать помимо основных спецификаций, основанных на OpenCL 1.2.

Здесь нужно понять некоторую специфику. Дело в том, что Khronos не имеет собственной реальной власти и не может навязать технологические изменения, являясь отраслевым консорциумом, в который входит множество компаний. Проблема совместного подхода заключается в том, что он требует определенной степени согласия между основными участниками. Если не может быть достигнуто соглашение о будущем, проект не может двигаться вперёд. А если никто не доволен результатом, продукт может не получить достаточно широкой поддержки и умереть в зародыше. Нечто подобное произошло с OpenCL 2.2, который был выпущен ещё в 2017 году. Основным новшеством стала поддержка OpenCL C++ в качестве языка ядра — более современного и объектно-ориентированного, чем использовавшийся ранее C. Однако три года спустя никто не принялся активно продвигать OpenCL 2.2: ни NVIDIA, ни AMD, ни Intel, ни, конечно, ни один производитель однокристальных систем. В результате это вредит стандарту.

Представлен OpenCL 3.0: без прошлого нет будущего"

Что делать, если OpenCL 2.x в значительной степени игнорируется? Khronos и рабочая группа OpenCL нашли ответ, решив вернуться к тому, что хорошо работало, и это был OpenCL 1.2, представленный впервые в 2011 году и ставший последней версией OpenCL 1.x. По современным стандартам API очень прост: он основан на чистом C и не поддерживает такие вещи, как общая виртуальная память или язык промежуточного представления SPIR-V. Но в то же время это последняя версия API, не включающая в себя массу второстепенных и бесполезных для многих участников рынка возможностей. Это чистый, довольно низкоуровневый API для параллельных вычислений во всём спектре: от мобильных решений до самых мощных видеокарт.

Представлен OpenCL 3.0: без прошлого нет будущего"

В конечном итоге рабочая группа OpenCL смогла договориться о том, что OpenCL 1.2 должен стать базовой спецификацией OpenCL 3.0 — всё остальное, несмотря на полезность для определённых задач, становится необязательным. Ранее жёсткая, монолитная природа стандарта одновременно препятствовала его развитию. Если поставщика удовлетворял OpenCL 1.2, но при этом ему хотелось реализовать пару дополнительных функций из OpenCL 2.1, то приходилось реализовать всю базовую спецификацию 2.1. В OpenCL 1.x / 2.x не было механизма частичного соответствия — только всё или ничего, и ряд компаний выбрали второе.

Теперь OpenCL 3.0 специально структурирован так, чтобы поставщики могли использовать только те части, которые им нужны, не пытаясь поддерживать всё остальное. Теперь ядром является OpenCL 1.2 с поддержкой запросов дополнительных функций, а также некоторыми дополнениями, призванными обеспечить совместимость. Все функции OpenCL 2.x, а также новые функции OpenCL 3.0 являются необязательными, позволяя поставщикам платформ самим решать, какие именно дополнительные возможности им нужны, и нужны ли вообще.

Например, производитель однокристальных систем для смартфонов может обеспечить OpenCL 1.2, и затем использовать несколько новых функций вроде асинхронных расширений DMA или разделяемой виртуальной памяти. В то же время крупный производитель видеокарт может поддержать бо́льшую часть функций OpenCL 2.x, но исключить поддержку разделяемой виртуальной памяти, что малополезно для дискретного ускорителя. В конечном счёте OpenCL 3.0 даёт поставщикам платформ возможность выбирать те функции, которые необходимы именно им, по сути, приспосабливая OpenCL к конкретным задачам.

Это очень похоже на подход Khronos к Vulkan, который оказался гораздо более успешным API в последние годы. Предоставление поставщикам некоторой гибкости в реализации функций API позволило Vulkan распространиться как на мобильных устройствах, так и на настольных ПК. Подобный успех хотела бы повторить и рабочая группа OpenCL.

Представлен OpenCL 3.0: без прошлого нет будущего"

В конечном счёте, как считает Khronos, последние годы развития OpenCL показали, что сложно сделать стандарт угодным сразу всем, сохранив его абсолютную монолитность. У производителей SoC нужды одни, у ЦП со встроенной графикой — другие, у дискретных видеокарт — третьи. А ведь есть ещё такие вещи, как FPGA и другие более экзотические варианты использования OpenCL. Таким образом, необходимо уйти от монолитности ради высокой адаптируемости к самому широкому спектру устройств и сред.

Несмотря на значительные изменения в философии разработки, OpenCL 3.0 создан так, чтобы оставаться обратно совместимым и логичным. Для разработчиков и пользователей благодаря ядру OpenCL 1.2 приложения 1.2 будут работать без изменений на любом устройстве OpenCL 3.0. В то же время приложения для OpenCL 2.x тоже будут работать без изменений на устройствах с OpenCL 3.0, если эти устройства поддерживают соответствующие функции 2.x. То есть на ПК уже созданное с применением OpenCL 2.1 ПО будет продолжать работать, а, например, на смартфонах — нет. Драйверы OpenCL 1.2 и 2.x действительно нуждаются в некоторых изменениях для соответствия требованиям 3.x, но в основном это касается поддержки запросов новых функций OpenCL. Таким образом, производители смогут выпустить драйверы 3.0 довольно быстро.

Представлен OpenCL 3.0: без прошлого нет будущего"

В дальнейшем разработчикам приложений предстоит правильно использовать функциональные запросы. Поскольку возможности OpenCL 2.x теперь необязательны, всем приложениям, задействующим дополнительные возможности 2.x/3.0, настоятельно рекомендуется использовать запросы функций, чтобы убедиться в наличии их аппаратной поддержки. Поэтому разработчикам приложений OpenCL 2.x рекомендуется обновить своё ПО для выполнения запросов функциональности.

Представлен OpenCL 3.0: без прошлого нет будущего"

OpenCL 3.0, помимо взгляда назад, делает и шаги вперёд. Главными среди них являются асинхронные расширения DMA, которые должны стать наиболее интересны тем поставщикам платформ, которые до сих пор придерживают OpenCL 1.2. Эта функция позволяет выполнять транзакции DMA одновременно с вычислительными ядрами, в отличие от синхронных операций, которые обычно могут исполняться только между другими операциями вычислительного ядра. Эта особенность примечательна тем, что позволяет передавать сложные структуры памяти, которые являются более продвинутыми, чем простые линейные. Наиболее это полезно для изображений и подобных данных, которые изначально являются 2D/3D структурами.

Представлен OpenCL 3.0: без прошлого нет будущего"

OpenCL 3.0 также вводит поддержку языка SPIR-V 1.3 (последняя версия SPIR-V — 1.5). Именно версия 1.3 на данный момент является частью спецификации Vulkan 1.1, что должно играть важную роль в улучшении взаимодействия между Vulkan и OpenCL, делая последний более эффективным в графических задачах.

Представлен OpenCL 3.0: без прошлого нет будущего"

Впрочем, стоит помнить, что OpenCL 3.0 всё ещё является предварительным стандартом и перед утверждением передаётся на обсуждение и знакомство разработчикам и широкой общественности. Впрочем, Khronos надеется, что уже через несколько месяцев они смогут получить ратификацию стандарта.

Представлен OpenCL 3.0: без прошлого нет будущего"


Софт отзывы новости




Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *