Аналогично, но из области технической диагностики. В одной из бесед с представителем гражданской авиации еще в СССР, я с энтузиазмом рассказывал ему, что можно сделать полностью автоматическую систему ,на основе конечно нейронной сети и самообучения , диагностики самолета в эксплуатации ( в ту пору упали два самолета по причине того, что проморгали трещину в диске турбины и летали пока диск неразорвало. )
А представитель мне и говорит - это все хорошо, но кто подпишет разрешение на взлет, если диагностику будет делать ЭВМ? кто ответит за безопасность полета?
Давно это было, уже не помню точного названия. Могу лишь сказать, что в ту пору вышел переводной тематический журнал О результатах применения ЭВМ для диагностики в медицине ( США) и книга о применении ЭВМ для прогнозирования послеоперационного состояния, а также сборник алгоритмов и программ на Алгол-60 по распознаванию образов . В книге в основном использовался метод главных компонент.
А как Вам такой вариант. раньше в компаниях отвечали клиентам люди, а теперь им отвечает программа. В итоге рентабельность повысилась - людей уволили, так как теперь клиенты не могут до технарей достучаться, то тех тоже сократили. В итоге - затраты на зарплату сократились, а освободившиеся деньги направили в бонусы (а это прибыль) руководству. А на ВВП это не влияет, так как выручка не изменилась.
Почему-то никто не вспоминает результаты применения обучающихся алгоритмов в медицине пол века назад не только в СССР, но и в США. Результаты были впечатляющие. Но не потому что можно было 200 миллиардов узлов сделать и потом полгода обучать их непонятно чем, а потому, что не было таких суперкомпьютеров а диагностика была и прогнозирование после операционного состояния было. Правда американцы сделали вывод, то достоверность диагноза выше 90% получить не получится так высокая погрешность исходных признаков - т е измеряемых параметров организма, а не букв в интернете, которого еще и в помине не было.
Ну и что же достигли за эти 50 лет? Ничего кроме бла-бла- бла и глупых вопросов ИИ с последующим восторгом "как он здорово сгенерировал буквы."
Так там, все было банально просто - хрящ переломан.
Она так и сказала позже, но я с этим к ней и пришел. Результат -ноль, само зажило. Давно это было, но ИИ тогда давал в медицине такие же результаты как и сейчас , только назывался он Системой распознавания образов в медицине. Теперь таких врачей уж нет.
Сейчас ИИ - это всего лишь генератор текста. Обучают его на текстах из интернет. Вот он и генерирует правдоподбные наборы букв на основе того, чему учили. Своих мыслей у него нет , а интеллект весь на основе интернета.
проще вам почитать загрузку исполняемых приложений,например, у Рихтера. Если упрощенно, то в бинарнике (exe) файле есть несколько блоков данных, в том числе и для констант. В мобильных устройствах (тоже Си) , я гружу константы во flash,чтобы экономить RAM.
Это не диагноз, а всего лишь первичные и скорее всего очевидные признаки , по которым ставится диагноз.
Диáгноз (греч. διάγνωσις, лат.diagnosis «распознавание»; от dia «через, посредством» + gnosis «знание») — медицинское заключение о состоянии здоровья обследуемого, а также сущности болезни и состоянии пациента, выраженное в принятой медицинскойтерминологии и основанное на всестороннем систематическом изучении пациента.
"Статистика (ссылка) за 2021 год показывает, что около 21% компании в России внедрили ИИ. Данных за 2022 пока нет, экстраполируем примерно на 25%, что весьма неплохо."
Согласно Вашей ссылке, внедрение ИИ даст рост ВВП на 1 процент лишь к 2025 году, но уже повысило рентабельность на 5%(!!!) . Почему же это повышение не повлияло на ВВП сейчас ? Что же хорошего в том, что внедрение пятой частью компаний ИИ никак не ощущается в изменении ВВП? Что-то тут не так с данными - которые наше все.
Вы просто рассуждаете из собственного предположения.
Но Вы ошибаетесь. Ранее я написал, что все зависит от определений и зададаемых параметров компилятору. Можно указать в одном варианте, что переменная в регистре, а в другом что в памяти и компилятор сделает разные вырианты. Можно указать что переменная изменяется из вне, а можно и не указывать. Если дальше переменная не используется, то во втором случае компилятор вообще выкинет это выражение из кода.
Можно указать что 2 и 4 этот константы, в нестираемой памяти и компилятор не заменет 2+2 на 4.
Ну и т д
Поэтому результирующий машинный код непредсказуемый в общем случае.
А попытка обобщить примитивные примеры на все случаи жизни всегда ошибочна, хотя и заманчива.
Если какой-либо зависимости в значениях value нет, то switch вполне может быть лучшим вариантом. Если же значение a или b встречаются значительно чаще (например в 95% и 4% случаев соответственно), то if может существенно превосходить в скорости switch.Это связано с особенностью блока предсказания ветвлений процессора. Последовательные if позволяют ему «обучаться» на входных данных и лучше предсказывать нужную ветку программы. В то же время switch, если компилятор сделал из него таблицу и косвенный переход, будет справляться с этой задачей значительно хуже.Например, для архитектур x86 и x86-64 подробнее об switch-против-if можно прочитать в «Intel® 64 and IA-32 Architectures Optimization Reference Manual».Ну и вообще, в таких случаях может быть эффективна гибридная схема:
void f ()
{
if (value == a) // отдельно обрабатываем вероятное значение
...
else if (value == b) // отдельно обрабатываем вероятное значение
...
else switch (value) { // обрабатываем всё остальное
case c: ...
case d: ...
}
}
Для уверенности, что компилятор нас правильно понял, ещё бывает полезно обернуть условие (value == a) во что-то подобное __builtin_expect(value == a, 1) или __assume(value == a). Где __builtin_expect и __assume — соответствующие подсказки оптимизатору.
1) В какой области экономики нужен 16-кубитный квантовый компьютер (про шифрование и дешифровании того, что никому не нужно я уже знаю, есть ли еще что-то полезное) ?
2) На сколько процентов увеличивается ВВП от применения квантового компьютера в капиталистическом хозяйстве ?
Аналогично, но из области технической диагностики. В одной из бесед с представителем гражданской авиации еще в СССР, я с энтузиазмом рассказывал ему, что можно сделать полностью автоматическую систему ,на основе конечно нейронной сети и самообучения , диагностики самолета в эксплуатации ( в ту пору упали два самолета по причине того, что проморгали трещину в диске турбины и летали пока диск неразорвало. )
А представитель мне и говорит - это все хорошо, но кто подпишет разрешение на взлет, если диагностику будет делать ЭВМ? кто ответит за безопасность полета?
Давно это было, уже не помню точного названия. Могу лишь сказать, что в ту пору вышел переводной тематический журнал О результатах применения ЭВМ для диагностики в медицине ( США) и книга о применении ЭВМ для прогнозирования послеоперационного состояния, а также сборник алгоритмов и программ на Алгол-60 по распознаванию образов . В книге в основном использовался метод главных компонент.
Хочу сказать, размер кода асм разный, а оператор С один и тот же.
А чтобы двойки не схлопывались для процессора SOC можно указать,что они во флеш.
Но пусть будет по-вашему, мне все равно.
вот такой пример, разница на -O2 и -O1, а на -O0 -разницы нет:
volatile int num1;
int s0() {
num1 = num1 + 2 + 2;
return num1;
}
int num;
int s1() {
num = 2 + num + 2;
return num;
}
результат:
s0():
mov eax, DWORD PTR num1[rip]
add eax, 4
mov DWORD PTR num1[rip], eax
mov eax, DWORD PTR num1[rip]
ret
s1():
mov eax, DWORD PTR num[rip]
add eax, 4
mov DWORD PTR num[rip], eax
ret
num:
.zero 4
num1:
.zero 4
Повторю еще раз, результат работы компилятора непредсказуемый, чем больше код, тем больше будет чудес.
А как Вам такой вариант. раньше в компаниях отвечали клиентам люди, а теперь им отвечает программа. В итоге рентабельность повысилась - людей уволили, так как теперь клиенты не могут до технарей достучаться, то тех тоже сократили. В итоге - затраты на зарплату сократились, а освободившиеся деньги направили в бонусы (а это прибыль) руководству. А на ВВП это не влияет, так как выручка не изменилась.
Почему-то никто не вспоминает результаты применения обучающихся алгоритмов в медицине пол века назад не только в СССР, но и в США. Результаты были впечатляющие. Но не потому что можно было 200 миллиардов узлов сделать и потом полгода обучать их непонятно чем, а потому, что не было таких суперкомпьютеров а диагностика была и прогнозирование после операционного состояния было. Правда американцы сделали вывод, то достоверность диагноза выше 90% получить не получится так высокая погрешность исходных признаков - т е измеряемых параметров организма, а не букв в интернете, которого еще и в помине не было.
Ну и что же достигли за эти 50 лет? Ничего кроме бла-бла- бла и глупых вопросов ИИ с последующим восторгом "как он здорово сгенерировал буквы."
Так там, все было банально просто - хрящ переломан.
Она так и сказала позже, но я с этим к ней и пришел. Результат -ноль, само зажило. Давно это было, но ИИ тогда давал в медицине такие же результаты как и сейчас , только назывался он Системой распознавания образов в медицине. Теперь таких врачей уж нет.
Сейчас ИИ - это всего лишь генератор текста. Обучают его на текстах из интернет. Вот он и генерирует правдоподбные наборы букв на основе того, чему учили. Своих мыслей у него нет , а интеллект весь на основе интернета.
понятна Ваша мысль.
Но можете привести результат оптимизации Ваших примеров компиляторами, c интересом прочитаю.
Остальное лишь Ваше или мое суждение.
Для какого процессора пишите?
У меня был еще прикольней случай.
Пришел к врачу.
Она взглянула и воскликнула - "Это что такое у Вас, первый раз такое вижу?"
проще вам почитать загрузку исполняемых приложений,например, у Рихтера. Если упрощенно, то в бинарнике (exe) файле есть несколько блоков данных, в том числе и для констант. В мобильных устройствах (тоже Си) , я гружу константы во flash,чтобы экономить RAM.
реальный диагноз : "сухой кашель"
реальный диагноз : "боль в эпигастрии"
реальный диагноз : "боль в шее"
Это не диагноз, а всего лишь первичные и скорее всего очевидные признаки , по которым ставится диагноз.
Диáгноз (греч. διάγνωσις, лат. diagnosis «распознавание»; от dia «через, посредством» + gnosis «знание») — медицинское заключение о состоянии здоровья обследуемого, а также сущности болезни и состоянии пациента, выраженное в принятой медицинской терминологии и основанное на всестороннем систематическом изучении пациента.
"Статистика (ссылка) за 2021 год показывает, что около 21% компании в России внедрили ИИ. Данных за 2022 пока нет, экстраполируем примерно на 25%, что весьма неплохо."
Согласно Вашей ссылке, внедрение ИИ даст рост ВВП на 1 процент лишь к 2025 году, но уже повысило рентабельность на 5%(!!!) . Почему же это повышение не повлияло на ВВП сейчас ? Что же хорошего в том, что внедрение пятой частью компаний ИИ никак не ощущается в изменении ВВП? Что-то тут не так с данными - которые наше все.
Вы просто рассуждаете из собственного предположения.
Но Вы ошибаетесь. Ранее я написал, что все зависит от определений и зададаемых параметров компилятору. Можно указать в одном варианте, что переменная в регистре, а в другом что в памяти и компилятор сделает разные вырианты. Можно указать что переменная изменяется из вне, а можно и не указывать. Если дальше переменная не используется, то во втором случае компилятор вообще выкинет это выражение из кода.
Можно указать что 2 и 4 этот константы, в нестираемой памяти и компилятор не заменет 2+2 на 4.
Ну и т д
Поэтому результирующий машинный код непредсказуемый в общем случае.
А попытка обобщить примитивные примеры на все случаи жизни всегда ошибочна, хотя и заманчива.
каким образом сравниваете?
Если по числу символов в строке , то разные ,
если по результату , то разные ( во второй строке I это не i)
если по области хранения и исполнения, то разные.
первая строка может быть исполнена в памяти, а последняя в регистре. Зависит от описания и от компилятора
В первой строке константа 2, а во второй и третьей константа 4. разное.
На самом деле много неопределенного в этих трех строках, поэтому будет зависеть от описания переменных и способа хранения которые здесь не указаны.
Поэтому ответ неопределенный.
вот нашел такое объяснение :
Если какой-либо зависимости в значениях value нет, то switch вполне может быть лучшим вариантом. Если же значение a или b встречаются значительно чаще (например в 95% и 4% случаев соответственно), то if может существенно превосходить в скорости switch.Это связано с особенностью блока предсказания ветвлений процессора. Последовательные if позволяют ему «обучаться» на входных данных и лучше предсказывать нужную ветку программы. В то же время switch, если компилятор сделал из него таблицу и косвенный переход, будет справляться с этой задачей значительно хуже.Например, для архитектур x86 и x86-64 подробнее об switch-против-if можно прочитать в «Intel® 64 and IA-32 Architectures Optimization Reference Manual».Ну и вообще, в таких случаях может быть эффективна гибридная схема:
Для уверенности, что компилятор нас правильно понял, ещё бывает полезно обернуть условие (value == a) во что-то подобное __builtin_expect(value == a, 1) или __assume(value == a). Где __builtin_expect и __assume — соответствующие подсказки оптимизатору.
Вот Вы построили код на С на основе if, о чем я и пытался сказать.
Именно так и оптимизировал автор статьи но на асме, подменив case в С, if-ом в ассме.
Вы не поняли, о чем я написал. Право компиляторов никто не умоляет.
Речь идет о ручной оптимизации автором статьи.
Switch и набор if по-разному преобразуются в машинный код. Обычно switch более громоздкая в машинном коде, но более компактная в C.
В статье автор исходный код на СИ написал с переключателем
а потом оптимизирует алгоритм на ассемблере с использованием условных операторов. А это аналог программ на С c использованием if.
Если бы он написал на СИ два варианта со switch и на основе if и оба варианта оптимизировал компиляторами а потом руками, тогда все было корректно.
Если я правильно понял, то исходный код на СИ на основе switch ,
а в ручной оптимизации фактически switch заменили на if.
Полагаю, что это некорректно, так как оптимизируется совершенно иной алгоритм, чем изначально оптимизировали компиляторы .
Возможно кто-нибудь знает,
1) В какой области экономики нужен 16-кубитный квантовый компьютер (про шифрование и дешифровании того, что никому не нужно я уже знаю, есть ли еще что-то полезное) ?
2) На сколько процентов увеличивается ВВП от применения квантового компьютера в капиталистическом хозяйстве ?