Size: a a a

2020 February 04

M

Mr.Mait in Qt
Stanislav Ershov
уменьшить потребление памяти и увеличить пропускную способность? )
Для пк это не заметно. Если stm32, то у некоторых есть аппаратное решение. Я даже не знаю сколько потребляет памяти этот объект, т.к. это класс
источник

SE

Stanislav Ershov in Qt
Mr.Mait
Для пк это не заметно. Если stm32, то у некоторых есть аппаратное решение. Я даже не знаю сколько потребляет памяти этот объект, т.к. это класс
ну да, видимо opengl/direct3d умеют в half-float просто так:)
источник

BB

Bohdan Bessonov in Qt
Stanislav Ershov
ну да, видимо opengl/direct3d умеют в half-float просто так:)
чет слабо верится что qfloat16 будет считаться на GPU.
источник

П

Павел in Qt
Bohdan Bessonov
чет слабо верится что qfloat16 будет считаться на GPU.
конечно не будет, исходники же открыты и обсмотрены
источник

SE

Stanislav Ershov in Qt
Bohdan Bessonov
чет слабо верится что qfloat16 будет считаться на GPU.
ну так для более легкого взаимодействия с gpu api?
источник

П

Павел in Qt
ха, кстати qfloat16'ы наверняка успешно получится передавать в контекст GPU при возникновении необходимости
источник

BB

Bohdan Bessonov in Qt
Stanislav Ershov
ну так для более легкого взаимодействия с gpu api?
Может быть.  Но всё же имхо, надо мерять, сильно ли это вообще дает прирост и стоит ли игра свеч. Занятная статья:
https://software.intel.com/en-us/articles/performance-benefits-of-half-precision-floats
источник

SE

Stanislav Ershov in Qt
NVIDIA GPUs can run operations in float16 faster than in float32, and TPUs can run operations in bfloat16 faster than float32.

из документации к тензорфлоу
источник

SE

Stanislav Ershov in Qt
так что думаю спорить не будем :)
источник

BB

Bohdan Bessonov in Qt
Stanislav Ershov
так что думаю спорить не будем :)
Дак и не о чем спорить. Более того, либы есть для float16 на CPU. Скорее тут главное не байтодрочить ;)
источник

M

Mr.Mait in Qt
Bohdan Bessonov
Дак и не о чем спорить. Более того, либы есть для float16 на CPU. Скорее тут главное не байтодрочить ;)
На счет байтодрочить ты прав. Для stm32 пытался максимально экономить память. Случайно переменную сделал uint8_t вместо uint16_t. Итого - неопределенное поведение программы из-за диапазона
источник

SE

Stanislav Ershov in Qt
источник

ИI

И Ivan in Qt
Павел
Всем ку, увожаемые. Если кто сталкивался с работой с встроенным типом данных qfloat16, просьба помочь прояснить ситуацию:

qfloat16 val = 540 / 1000.0f; // можно и так: qfloat16 val = qfloat16(540) / qfloat16(1000); а можно и так: qfloat16 val = qfloat16(540.0f) / qfloat16(1000.0f); это не влияет на результат

std::cout << std::numeric_limits<qfloat16>::max() << std::endl;
std::cout << std::numeric_limits<qfloat16>::min() << std::endl;
std::cout << val << std::endl;

выхлоп - сплошная дичь(можно заменить штатный std::cout на родной для кт qDebug(), на выхлоп это не повлияет):

0
0
0.539551

почему min/max в нулях? Интересно, какой вообще max/min может быть у 16 битного флота
Проблема может быть с cout. Он может тлочность обрезать. Попробуй домножить на миллион например

Также флаги оптимизации сильно на это влияют
источник

П

Павел in Qt
И Ivan
Проблема может быть с cout. Он может тлочность обрезать. Попробуй домножить на миллион например

Также флаги оптимизации сильно на это влияют
если бы точность обрезалась - пострадал бы обычный float, а поскольку он отрабатывает корректно то с cout всё в полном порядке. min/max qt ОБЯЗАНО отдавать как вот у человека с ос windows
источник

IA

Iron Ass in Qt
добрый день) вопрос скорее всего частый, так что рискну нарваться на посылания в гугл и спрошу тут, так быстрее:
получаю с сервера QByteArray, кастую в QVariant, элемент DateTime как строку сую в sqlite, потом достаю и делаю вот это:
QString t = meetingDB["Date"].toString();

   StartDateTime = QDateTime::fromString(t, "yyyy-MM-ddTHH:mm:ss");
   StartDateTime.setTimeZone(QTimeZone::utc());
   StartDateTime = StartDateTime.toLocalTime();


но он на час больше время делает. сомнения закрались, что всех этих кастов QDateTime не выдерживает? или я не права?
источник

SE

Suigintou45 E13 in Qt
Iron Ass
добрый день) вопрос скорее всего частый, так что рискну нарваться на посылания в гугл и спрошу тут, так быстрее:
получаю с сервера QByteArray, кастую в QVariant, элемент DateTime как строку сую в sqlite, потом достаю и делаю вот это:
QString t = meetingDB["Date"].toString();

   StartDateTime = QDateTime::fromString(t, "yyyy-MM-ddTHH:mm:ss");
   StartDateTime.setTimeZone(QTimeZone::utc());
   StartDateTime = StartDateTime.toLocalTime();


но он на час больше время делает. сомнения закрались, что всех этих кастов QDateTime не выдерживает? или я не права?
а пример исходной строки с датой можно?
источник

IA

Iron Ass in Qt
Suigintou45 E13
а пример исходной строки с датой можно?
то, что с сервера прилетает?
источник

SE

Suigintou45 E13 in Qt
Iron Ass
то, что с сервера прилетает?
да
источник

IA

Iron Ass in Qt
момент)
источник

IA

Iron Ass in Qt
"2020-02-04T11:31:57.506Z"
источник