Anonymous
конвертация в строку аттоматически в 10 переводит
А какая разница, в какой СИ число? В памяти всё равно одинаково хранится.
Alexander "SonnySlave"
https://github.com/nlohmann/json/releases/tag/v3.0.0
ttldtor
https://github.com/nlohmann/json/releases/tag/v3.0.0
NaN and infinity values can now be stored inside the JSON value without throwing an exception. They are, however, still serialized as null Гм, странное решение
Dr. Friedrich
NaN and infinity values can now be stored inside the JSON value without throwing an exception. They are, however, still serialized as null Гм, странное решение
Ну, почему оно не сериализуется — это понятно (в стандарте JSON нет значений NaN и Inf). А вот зачем их при этом хранить в памяти, и какое должно быть поведение — это вопрос дискуссионный.
Dr. Friedrich
Ну, эти библиотеки не следуют стандарту, вот и всё. Если тебе нужно вопреки стандарту с такими значениями работать — то ок, они тебе годятся.
Viacheslav
По мне так если уж припёрло через текстовый формат прогонять числа с плавающей точкой, то лучше уж их через текстовую шестнадцатеричную форму в JSON загонять. Хотя бы точность после считывания будет абсолютно такая же, как и при записи. Не всегда это возможно сделать, конечно.
ttldtor
NaN короче)
Anonymous
Если оно может представлять Inf и NaN — значит может хранить.
Alexander "SonnySlave"
https://developer.nvidia.com/cuda-toolkit/whatsnew
Крылатый
https://developer.nvidia.com/cuda-toolkit/whatsnew
Есть же OpenCL 2.2. Там можно даже на чём-то похожем на C++14 писать.
Alexander "SonnySlave"
Есть же OpenCL 2.2. Там можно даже на чём-то похожем на C++14 писать.
никогда с такими вещами не работал. но подозреваю, что CUDA будет шустрее 😊
Крылатый
никогда с такими вещами не работал. но подозреваю, что CUDA будет шустрее 😊
Это слова человека, который топит за кроссплатформу?
Alexander "SonnySlave"
Alexander "SonnySlave"
и от своей веры в кроссплатформу я не отрекаюсь
Evgenii
Это слова человека, который топит за кроссплатформу?
но куда шустрее, не важно что ты за человек
Крылатый
но куда шустрее, не важно что ты за человек
Кто бы сомнивался, что реалиазация vendor-lock технологии будет быстрее, чем реализация общего стандарта.)
Alexander "SonnySlave"
кстати, никто не в курсе, как там война Vulkan vs DirectX?
Evgenii
Кто бы сомнивался, что реалиазация vendor-lock технологии будет быстрее, чем реализация общего стандарта.)
сомневайся не сомневайся, а жертвовать производильностью ради идеологии готовы не многие
Evgenii
так бы конечно я б на риск 5 сидел бы
Anatoly
Поздравляю, у нас два верующих человека в чате!
Anonymous
как двумерным массив хранится в памяти? я думал что как последовательность элементов, т.е. если массив mas[2][2] и я обращусь к *mas[2] то получу mas[2][0] но нет, выводит мусор, получается нельзя работать с двумерным массивом как с одномерным через указатели?
Roman
если это не массив массивов, то должен последовательно в едином куске памяти
Anonymous
да, так работает, а на что я получил указатель?
Anonymous
да, так работает, а на что я получил указатель?
Подожди, ты там просто за массив выходил. Первый элемент второго столбца - *mas[1]
Roman
вернее на вторую строку 1 элемент
Anonymous
А то, что я сказал - это просто третий элемент
Anonymous
(что в этом случае одно и то же)
Anonymous
это абстрактный пример, в моем случае все ок сработало с (*mas)[i]
Anonymous
это абстрактный пример, в моем случае все ок сработало с (*mas)[i]
Но помни, что это даёт i-тый элемент массива, как если бы он был не двумерным, а одномерным.
Anonymous
да мне это и нужно, мне нужно циклически подвинуть двумерную матрицу, и я подумал что проще это сделать оперируя одномерной послдовательностью
Anonymous
да, так работает, а на что я получил указатель?
ты получил указатель на ячейку в памяти в которой лежит значение
Maxim
https://godbolt.org/g/qdaaZP Это я что-то не так делаю или проблема в компиляторе? Компилится только в GCC 8.0 и MSVC
Egor
Мой GCC, судя по всему, внезапно считает, что там у нас pair<const int, unique_ptr<int>>
Egor
И отказывается генерировать даже move, что разумно
Egor
Локально простыми средствами без map воспроизвести не удалось
Aidar
ваще надо p.emplace(1, std::make_unique<int>(5));
Maxim
Судя по всему, если не указываешь явно, то некоторые компиляторы делают deduce на const int и, очевидно, падают
Maxim
а остальные, видимо, считают, что это обычный int
Aidar
а value_type это pair<const T, U>
Aidar
а хотя я кажется вру
Aidar
The overload (2) is equivalent to emplace(std::forward<P>(value)) and only participates in overload resolution if std::is_constructible<value_type, P&&>::value == true
Aidar
а нет не вру
Aidar
мыж не передаем туда pair
Dr. Friedrich
Во всех 3х стандартах ?
Я знаю только RFC 8259, там прям чёрным по белому указано: > Numeric values that cannot be represented in the grammar below (such > as Infinity and NaN) are not permitted. А какие ещё есть стандарты на JSON? Давайте обсудим!
Vladislav
Я бы сомневался.
и тем не менее, куда быстрее)
Dr. Friedrich
и тем не менее, куда быстрее)
Буду продолжать сомневаться, пока мне не покажут бенчмарк.
Dr. Friedrich
(не то чтобы кто-то обязан мне что-то показывать, просто сомневаюсь и всё)
Alexander "SonnySlave"
Кстати да, было бы интересно посмотреть на бенчмарки
Крылатый
Будто забили.
Anatoly
Я бы сомневался.
nvidia остановилась на стандарте openCL 1.2. Что по нынешним меркам эпоха динозавров. Новых бенчей ты врядли найдёшь. Могу только точно сказать что если похоже реализовать один и тот же алгоритм хеширования на cuda и на opencl для зелёных, то cuda будет шустрее. Ну и под cuda писать приятнее. OpenCL лямку по больше степени только AMD сейчас и тянет.
Anonymous
А можно (имеет ли смысл) писать под гпу без всех этих фреймворков?
Anatoly
всмысле фреймворков?
Anatoly
cuda/Opencl это апи для вычислительных задач на GPU
Anatoly
ты можешь писать рассчёты через opengl шейдеры, вот только скорость тебя расстроит. compute shaders opengl я правда не смотрел
Anatoly
ну в общем ниже особо спускаться то и некуда.
Anton
Кстати, об OpenCL... Реально ли реализовать поддержку стандартов через CUDA?
Anatoly
Я думаю находясь вне Nvidia эта затея обречена на боль и страдания.
Anatoly
Тот же device-side enqueue поддерживается в Cuda C(Если если мне память не имзеняет). Но сделать это не имея доступа к исходникам драйвера/cuda compiler будет непросто и скорее всего надо будет просто транслятор из одного в другое. Ну нафиг.
Anatoly
AMD у себя в rocm делает обратное :) Чтобы прогнав через hip компилятор можно было Cuda C код запускать не только на nvidia.
Anton
Да, эту новость слышал где-то год (вроде) назад. Но там так и не понял, они выложили сорцы или нет.
Anatoly
Большая часть доступна. Вроде HIP полностью рабочий в opensource. Есть некоторые части драйвера которые доступны только под NDA, но вроде компилятор opencl и hip полность в open source. 100% гарантии не даю https://llvm.org/docs/AMDGPUUsage.html https://github.com/ROCm-Developer-Tools/HIP https://github.com/ROCm-Developer-Tools https://github.com/RadeonOpenCompute https://rocm.github.io/
Aidar
Там есть некий cycl
Aidar
https://www.khronos.org/sycl
B
есть какая-нибудь тула для анализа качества CMake файлов? например, лишние либы в линковке или инклудах и тд