LINUX.ORG.RU

Сообщения praseodim

 

Снова про выбор видеокарты для ML

Форум — Linux-hardware

Собственно, у имеющейся AMD с 8Гб недостаточно памяти. В остальном относительно устраивает, хотя это я еще в основном с PyTorch работаю и он поддерживается.

  1. Nvidia RTX 4060 с 16 Гб памяти за ~ 55 тыс. руб:
    + Nvidia
    + не потребует нового БП.
    - 16 Гб тоже не так, чтобы много
    - относительно не быстрая
  2. AMD RX 7900 XTX c 24 Гб памяти за ~ 100 тыс.руб. (по акциям или на авито, так ~ 120-130)
    + 24 Гб - это хорошо, 4090 с ними дороже 200 тыс. уже
    + быстрее 4060 в большинстве случаев
    - AMD
    - нужен будет новый БП еще за ~ 10-15 тыс.р
    
  3. AMD RX 7900 XT с 20 Гб памяти за ~ 85 тыс.руб. (тоже по акциям, но выбор шире)
    + 20 Гб тоже неплохо,
    + тоже быстрее 4060
    + дешевле предыдущего варианта
    - AMD
    - все равно новый БП нужен
    - 20 Гб все же не 24 Гб

Ввиду острого желания сэкономить деньги обратил внимание на avito.ru Есть там вроде как продавцы новых видеокарт с официальной гарантией даже. Правда чем гарантия от AMD поможет неясно. По ценам на 10%-15% дешевле dns-овских продают. Непонятно можно с ними связываться или не стоит все равно. До сих пор на авито брал только б/у (не видюхи) у обычных людей, не постоянных торговцев.

Я бы вообще сейчас не суетился подождал бы начала января, к сожалению, есть риск, что низких цен при этом не дождусь, несмотря на затишье продаж в то время.

 , ,

praseodim
()

Как в питоне словарь внутри себя использовать

Форум — Development

Чего-то не понял в нем.

list=['a','a','a','b','c','c','c','c']
s = {i: s[i]+1 for i in list}
print(s)

Хотелось бы увидеть вывод вроде 'a':3, 'b':1, 'c':4 но возникает ошибка «NameError: name 's' is not defined» Если же просто присваивать допустим 1 каждому ключу, то нормально, но мне не это нужно.

 

praseodim
()

Барыги и покупка комплектующих

Форум — Talks

Вот же все-таки. Когда доллар рос они ценники очень оперативно передвигали вверх, можно было даже на курсы валют не смотреть, а а по ценникам видеть, что опять скакнуло.

Сейчас уже несколько недель откатился на несколько процентов и вот хрен вам, а не снижение цен. Стоят как влитые, даже слегка растут на некоторые позиции. Это получается, что мне выгоднее было валютную заначку вскрыть в сентябре, а сейчас просто потери выйдут. И ведь если доллар опять полезет вверх, цены снова начнут оперативно двигать. Тудыть!!!!

 

praseodim
()

Почему docker commit не сохраняет изменения?

Форум — Admin

Делаю так с докером rocm/pytorch

Запуск

docker run -it -p 8055:8055 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G -v /home/dn/work/:/var/lib/jenkins/work rocm/pytorch:latest
# python -m pip install ipykernel
# python -m ipykernel install --user

Выводит

Installed kernelspec python3 in /root/.local/share/jupyter/kernels/python3
# cat /root/.local/share/jupyter/kernels/python3/kernel.json
{
 "argv": [
  "/opt/conda/envs/py_3.9/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3 (ipykernel)",
 "language": "python",
 "metadata": {
  "debugger": true
 }

На всякий случай, чтобы сразу было видно, что именно работает меняю в display_name Python 3 на 39

Все хорошо. Проверяю в работе, работает Помогите jupyter-notebook наладить

Даже создаю файл в текущей директории, просто чтобы проверить что происходит

# pwd
/var/lib/jenkins

# echo 'changed'>changed.txt
# cat changed.txt 
changed

Затем в основной системе сохраняю изменения

$ sudo docker ps
CONTAINER ID   IMAGE                 COMMAND   CREATED          STATUS          PORTS                                       NAMES
fe34f8d28a8b   rocm/pytorch:latest   "bash"    12 minutes ago   Up 12 minutes   0.0.0.0:8055->8055/tcp, :::8055->8055/tcp   silly_carver

$ sudo docker commit fe34f8d28a8b
sha256:add8d68af7488419317ed7d3a50fc8ada58aa92163bb105026042b1a59c4f09b

Делаю exit, снова запускаю докер, все изменения пропали!!! Почему????????

# cat /root/.local/share/jupyter/kernels/python3/kernel.json
cat: cat: No such file or directory
cat: /root/.local/share/jupyter/kernels/python3/kernel.json: No such file or directory

#  cat changet.txt
cat: changet.txt: No such file or directory

При этом до этого всякие apt-get install разных пакетов комитились.

Что я не понял, почему не работает как должно, какие магические опции у команд забыл????

 

praseodim
()

Помогите jupyter-notebook наладить

Форум — Development

Тут вроде есть опытные питоноводы, некоторые хвастались, что 2003-го года в нем, всех каких можно собак съели наверное.

Вся задача добиться, чтобы в питоне jupyter-notebook использовал в докере нужную библиотеку PyTorch, которая использует ускоритель AMD.

Где-то на 90% задачу решил, но застрял там где менее всего этого ожидал.

Итак, специально даже выделил отдельную машину с ubuntu и пользуясь инструкциями с https://github.com/alfinauzikri/ROCm-RX6600XT поставил и ROCm и докер

docker pull rocm/pytorch:latest

Внутри докера если запустить просто python3, то есть признаки, что все работает

>>> import torch
>>> torch.cuda.is_available()
True

Хорошо, но мне очень нужен jupyter-notebook - это такая интерактивная среда работы с питоном в браузере, позволяет в разных блоках иметь код, описание, графики там же и т.д.

Внутри докера даже был скритп buld-jupyter.bash, но при его запуске он чего-то хотел мне непонятного

# ./build_jupyter.bash 
ERROR: Usage: ./build_jupyter.bash <JUPYTER_DOCKER_TAG>

Что еще за тег непонятный, откуда я его возьму? Поставил просто через apt-get install jupyter и успел даже закомить его. Зря.

Запуск докера и все такое наладил, извне запускается, в браузере вроде работает, вот только

import torch
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-eb42ca6e4af3> in <module>
----> 1 import torch

ModuleNotFoundError: No module named 'torch'

Что за нах? Выяснил, что юпитер-ноутбук использует python 3.11 для которого нет в докере торча с поддержкой AMD. Если модуль поставить через pip install естественно ставится посторонний. Мда...

Ну думаю, может опция какая есть для указания версии питона? А вот хренушки, все через задницу.

Нашел советы https://stackoverflow.com/questions/30492623/using-both-python-2-x-and-python...

Там правда для того, чтобы был выбор между 2-м и 3-м питоном, но не думаю, что принципиальная разница. Или есть?

configure the python3.6 environment:

conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user

Замечательно, делаю по аналогии:

conda create -n py39 python=3.9

## Package Plan ##

  environment location: /opt/conda/envs/py39

  added / updated specs:
    - python=3.9


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    openssl-3.0.12             |       h7f8727e_0         5.2 MB
    pip-23.3                   |   py39h06a4308_0         2.6 MB
    wheel-0.41.2               |   py39h06a4308_0         108 KB
    ------------------------------------------------------------
                                           Total:         7.9 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu 
  ca-certificates    pkgs/main/linux-64::ca-certificates-2023.08.22-h06a4308_0 
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 
  libffi             pkgs/main/linux-64::libffi-3.4.4-h6a678d5_0 
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 
  ncurses            pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 
  openssl            pkgs/main/linux-64::openssl-3.0.12-h7f8727e_0 
  pip                pkgs/main/linux-64::pip-23.3-py39h06a4308_0 
  python             pkgs/main/linux-64::python-3.9.18-h955ad1f_0 
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 
  setuptools         pkgs/main/linux-64::setuptools-68.0.0-py39h06a4308_0 
  sqlite             pkgs/main/linux-64::sqlite-3.41.2-h5eee18b_0 
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 
  tzdata             pkgs/main/noarch::tzdata-2023c-h04d1e81_0 
  wheel              pkgs/main/linux-64::wheel-0.41.2-py39h06a4308_0 
  xz                 pkgs/main/linux-64::xz-5.4.2-h5eee18b_0 
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 


Proceed ([y]/n)? 

Непонятно, почему оно захотело скачивать заново python, хотя версия 3.9 уже стоит? Ну да ладно, жму «y» и вроде все нормально

В конце установки даже пишет, как в инструкции выше

Preparing transaction: done                                                                                                                                                  
Verifying transaction: done                                                                                                                                                  
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py39
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Пишу conda activate py39. А вот хренушки опять!!!!

# conda activate py39
usage: conda [-h] [--no-plugins] [-V] COMMAND ...
conda: error: argument COMMAND: invalid choice: 'activate' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'doctor', 'content-trust', 'env')

Оп-па, $$$-па и что с этим делать? Может из-за того что работа в докере из под рута? Да вряд ли. Куда опцию activate спрятали?! Попробовал без нее, но ожидаемо ничего не вышло. Или я не понял как проверить, что вышло? :))))

Там еще был совет

python2 -m pip install ipykernel

python2 -m ipykernel install --user

Сделал также для 3-го питона в котором есть нужный торч, команды прошли, но эффекта на ноутбук не возымели.

И чего делать? Помогите осилить!!!!

 conda, jupyter-notebook,

praseodim
()

Что еще за virtual environment?

Форум — Development

Читаю инструкцию по наладке PyTorch под видиоекарты AMD (с OpenCL)

https://github.com/artyom-beilis/pytorch_dlprim

git clone --recurse-submodules https://github.com/artyom-beilis/pytorch_dlprim.git

Скачал исходники для замены

Building the on Linux

Make sure you are in the virtual environment

Далее

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=$VIRTUAL_ENV/lib/python3.8/site-packages/torch/share/cmake/Torch ..
make

Кто-нибудь понял, что это за $VIRTUAL_ENV? И таки где именно предлагается каталог build сделать? Внутри скаченных исходников или снаружи.

Небольшой гуглеж только запутал, вроде python, если запустить его предоставляет это самое $VIRTUAL_ENV, но тут же действия извне.

 ,

praseodim
()

Чего-то не пойму как у этого хостера диски подключать

Форум — General

Пытаюсь перевести старый инстанс VC1S с bootscript на uefi/boot но застрял на этапе подключения дополнительных дисков.

Сделал с основного снапшот, сделал еще один. Сделал из снапшота volume block storage, сделал LocalStorage, делал Attach / Detach к основному инстансу, перезагружал.

Один хрен не видит. lsblk и пусто, только /dev/vda основного диска. При этом переключить на другой volume получилось, но хотелось бы сам volume подключить, чтобы поредактировать его, fdisk сделать и тп.

В суппорт пока не писал, они сейчас почти на все вопросы пишут, что надо на новый тип переходить.

Собственно, вопрос кто хостится, это я что-то неправильно делаю или хостер не хочет, не может?

PS. На старом образе стоял Debian 8.0 Jessie (не видел смысла новее ставить), обновился только что до stretch (9.0) - один фиг. На более новый опасаюсь обновляться, там почему-то бутскрипты нельзя выбрать. Так что останется со старым ядром 4.5.1

P.P.S. Завел новый инстанс - там никаких вроде проблем с подключением.

 

praseodim
()

Бывают ли Live-дистры с OpenCL для AMD из коробки?

Форум — Desktop

Такое ощущение, что нет, но может не в курсе.

 , ,

praseodim
()

Тупые вопросы по Python - 1. Логические типы

Форум — Development

Слегка не понял логические выражения в Python

if "Something":
    print("Something look as True")
else:
    print("Something no look as True")
    
if "Something" == True:
    print("Something is True")
else:
    print("Something is not True")

Результат работы

Something look as True
Something is not True

WTF?

Первый результат понятен. «Something» не пустая строка и это в логических выражениях тоже, что и True. А вот второй не совсем понял. Если бы я True в кавычки взял, то было бы сравнение строк, а так вроде тоже строка должна как булевое выражение восприняться.

 

praseodim
()

И снова про Луну-25

Форум — Talks

https://www.ixbt.com/news/2023/10/03/roskosmos-nazval-osnovnuju-prichinu-krus...

https://www.roscosmos.ru/39790/

Оказывается, на прибор пришло слишком много команд, и БИУС-Л не смог выбрать наиболее приоритетные. «В связи с этим в бортовой комплекс управления приходили нулевые сигналы с акселерометров прибора БИУС-Л», – рассказали в Роскосмосе.

Отсутствие данных от акселерометра «не позволило при выдаче корректирующего импульса зафиксировать момент набора требуемой скорости и произвести своевременное выключение двигательной установки космического аппарата».

У меня чего-то челюсть отвисать стала. Респект, что вроде честно признались и открыто сообщили, но до сих пор казалось, что произошел аппаратный отказ, ну там микросхема какая-то недостаточно радиационно-стойкой оказалась или что-то недотестировали в условиях вакуума.

А это же явный косяк в проектировке. Причем косяк программистов. «на прибор пришло слишком много команд, и БИУС-Л не смог выбрать наиболее приоритетные. »

Линукс тут при том, что не виндовс. И вообще, надо было разработчикам посоветоваться в Development =)

 ,

praseodim
()

Как позволить работать с портами до 1024 не root-у

Форум — Admin

Вопрос возник в связи с этим Провайдер блокирует DHT (комментарий)

# sysctl net.ipv4.ip_unprivileged_port_start=1

или прямо

echo "1" >  /proc/sys/net/ipv4/ip_unprivileged_port_start

Не работает, при попытке соединений от пользователя с портами менее или равными 1024, пишется conection refused.

Все переменные при этом устанавливаются

# cat  /proc/sys/net/ipv4/ip_unprivileged_port_start
1

 ,

praseodim
()

Нецензурные выражения?!

Форум — Linux-org-ru

www.linux.org.ru/forum/talks/17348397

Dimez, я выпал в осадок, узнав причину удаления. Потом перечитал тему и кажется догадался на какое слово ты среагировал. Но это же анекдот: можно было бы от скриптов ожидать, а не от человека. Само слово вообще никакого отношения не имеет, можно хоть погуглить.

 

praseodim
()

Libreboot, IntelMe, блобы говорите. Тем временем автомобили стали ультрашпионить

Форум — Talks

Просто офигел, даже не думал, что настолько все плохо стало буквально лет за 10 и даже меньше. Современные машины стали даже хуже мобилок по части шпионства за юзером, производители обнаглели сверх всякой меры, это какой-то беспредел уже просто.

Вот статья на опеннете https://www.opennet.ru/opennews/art.shtml?num=59725

Современные машины оснащены датчиками, камерами и микрофонами, фиксирующими каждое движение пользователя. Собираемая информация также охватывает действия водителя, используемые сервисы, мобильные приложения и данные из сторонних систем, таких как Sirius XM и Google Maps. Среди прочего, автомобильные системы могут собирать показатели здоровья водителя, данные о прослушиваемых музыкальных композициях, сведения о том, где и с какой скоростью осуществляется движение. Более того, Nissan и Kia упоминают в политике конфиденциальности возможность сбора данных о сексуальной активности, а ещё шесть производителей допускают сбор генетической информации. На основе собранной информации делаются выводы об интересах, предпочтениях, интеллекте и способностях водителя.

И все это еще и может быть передано кому угодно фактически.

В комментариях есть о том, что еще и остановить слив телеметрии технически очень сложно. В коммуникационные модули фактически встроен сотовый с есимкой, предоплаченной где-то лет на 10. И через сотовые по всему миру льется неотключаемая телеметрия. При этом владелец даже номера «мобилы» своей машины не имеет права знать.

И разумеется все эти канбасы и дата контрол модули проприетарные и зашифрованные и если чего не так легко окирпичить автомобиль.

https://www.opennet.ru/openforum/vsluhforumID3/131444.html#173

https://www.toyota.com/privacyvts кликаешь на «collect & use» и удивляйся: On a Regular and Continuous Basis, We Collect and Use Your: Account Information, Vehicle Information, Location Data, Remote Data, Driving Data, Profile Data, Interior Image Data, Exterior Image Data, Facial Geometric Features,Vehicle Health Data, Multimedia Screen Data, Voice Recordings, Voice Recognition Recordings

и ключике от машины не отдадут пока не подпишешся что согласен, так же как и с мобилами, - типа «согласен со всеми зондами», т.к. хочу игруху. Еще прув? Смотрите на головной юнит, там иконка есть показывающая переодически активность телеметрии (иногда по несколько раз в день а иногда молчит, когда ездишь не лихо)

Жесть, просто жесть

 , ,

praseodim
()

Минцифры предложило блокировать сайты за методы обхода блокировок

Форум — Talks

Собсно сабж https://www.rbc.ru/politics/03/09/2023/64f46fe29a79474a7e320ed4

Минцифры предложило позволить Роскомнадзору блокировать сайты с информацией о способах обхода блокировок, проект постановления правительства опубликован на портале проектов правовых актов.

Документ был опубликован 1 сентября, процесс общественного обсуждения продлится две недели.

Документ под номером 141488 доступен на сайте https://regulation.gov.ru/Regulation/Npa/PublicView?npaID=141488#

Изменения, которые вносятся в постановление ‎Правительства Российской Федерации от 26 октября 2012 г. № 1101

1.Подпункт «а» пункта 5 Правил создания, формирования ‎и ведения единой автоматизированной информационной системы «Единый реестр доменных имен, указателей страниц сайтов в информационно-телекоммуникационной сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в информационно-телекоммуникационной сети «Интернет», содержащие информацию, распространение которой ‎в Российской Федерации запрещено», утвержденных указанным постановлением, после абзаца восьмого дополнить абзацем следующего содержания:

«информации о способах, методах обеспечения доступа ‎к информационным ресурсам и (или) информационно-телекоммуникационным сетям, доступ к которым ограничен на территории Российской Федерации;».

2. Пункт 4 Правил принятия уполномоченными Правительством Российской Федерации федеральными органами исполнительной власти решений в отношении отдельных видов информации и материалов, распространяемых посредством информационно-телекоммуникационной сети «Интернет», распространение которых в Российской Федерации запрещено, утвержденных указанным постановлением, дополнить подпунктом «е» следующего содержания:

«е) информации о способах, методах обеспечения доступа ‎к информационным ресурсам и (или) информационно-телекоммуникационным сетям, доступ к которым ограничен на территории Российской Федерации.».

P.S. Хотелось бы ошибиться, но вангую, что вероятнее всего будут чохом банить вообще любую техническую информацию об установке и настройке VPN, проксей и тд.

 ,

praseodim
()

Программирование космических аппаратов

Форум — Talks

На примере Луны-25. Без нацполов, чисто технически. Как известно, она разбилась из-за ошибки в работе двигателей.

Вот какое объяснение: https://www.ixbt.com/news/2023/08/21/pochemu-razbilas-luna25-glava-roskosmosa...

Основная причина крушения «Луны-25» — нештатная работа корректирующего двигателя, который при попытке аппарата перейти на предпосадочную орбиту проработал больше положенного времени.

«К сожалению, отключение двигателя произошло не штатно, в соответствии с циклограммой, а по временной отсечке, и вместо запланированных 84 секунд он отработал 127 секунд. Это явилось основной причиной аварии аппарата», — сказал Юрий Борисов.

Я вот вспоминаю, давно была у меня (вернее у родителей) старая советская стиральная машина еще 60-х годов. С ручным управлением. Вернее бы сказать, с полуавтоматическим. Там можно было задать таймером продолжительность работы.

Происходило это так: таймером (механическим) выставлялось время работы (например 30 минут), таймер начинал обратный отсчет, довольно громко тикая. Потом нажималась кнопка, двигатель включался и работал заданное время. По его истечению таймер разрывал соединение.

Важно, что без взведенного таймера двигатель просто не включался. И вот, что получается такой простой вещи не было на Луне-25? Ладно, допустим все управление от циклограммы, но тогда откуда взялась временная отсечка в 127 секунд? Страховка от сбоя? Но хреновая какая-то страховка получается.

Я может конечно слишком много возомнил о себе, делая вывод о том в чем совершенно не специалист, но чего-то такое ощущение, что каким-то говнокодом веет. Или в программной части или в конструкторской.

P.S. Интересно все же, сам сбой аппаратный или программный?

 ,

praseodim
()

Уязвимость AMD Inception

Форум — Talks

А чего как-то мимо лора прошло? В июле была уязвимость типа bleeding для процессоров Zen2, а с неделю назад пожалте бриться и владельцы Zen3 и 4.

https://3dnews.ru/1091232/amd-soobshchila-ob-uyazvimosti-inception-kotoraya-z...

AMD раскрыла информацию об уязвимости под кодовым именем Inception (CVE-2023-20569, AMD-SB-7005), которую обнаружили исследователи Швейцарской высшей технической школы Цюриха (ETH Zurich). Она позволяет атакующему похищать конфиденциальные данные, хотя и предоставляет весьма ограниченные возможности.

Как обычно опять из-за спекулятивного выполнения команд. На хоботе новость, что на некоторых задачах заплатка почти в 2 раза снижает производительность

https://www.ixbt.com/news/2023/08/16/zaplatka-ot-ujazvimosti-inception-v-proc...

со ссылкой на тесты фороникса https://www.phoronix.com/review/amd-inception-benchmarks/5 и Tom's Hardware https://www.tomshardware.com/news/amds-inception-fix-causes-up-to-54-performa...

Чаще всего значительное снижение производительности фиксируется в приложениях, работающих с базами данных, компиляцией кода, проектированием и обработкой изображений. Нужно понимать, что в данном случае речь идёт о серверном процессоре и соответствующих тестах под Linux. Насколько всё плохо в случае потребительских Ryzen, пока неясно.

 , ,

praseodim
()

Посоветуйте по поводу хостинга Scaleway

Форум — Talks

Кто там хостится, подскажите как бы деньги сохранить? Дело вот в чем.

У них сейчас переход на новый метод загрузки инстансов (того, что хостится, виртуальная машина). Старый, называемый ими bootscript, теперь депрекейтид, хотят на новый, названый local boot, который через efi.

Так как у меня старый тип VC1S, для него предлагается завести новый инстанс с local boot и перетащить туда данные. Через снапшоты или как-то локально.

Все бы ничего, но самый дешевый новый инстанс мне будет стоить примерно в ДВА раза ДОРОЖЕ, чем я сейчас плачу. LOL. Похоже нет у них теперь тарифов, которые были в лет пять назад.

Там что-то сказано, что через их специальную консоль (для которой надо api key получить и т.д.) как-то можно легаси инстансы создать. Но там честно говоря легко поднапутать и не очень понятно насчет этого, может там опять будет старый bootscript.

Ну и в общем чего посоветуете? Можно конечно до упора сидеть на текущем, пока не отвалится. Хз.

 ,

praseodim
()

Госдума РФ утвердила законопроекты, которые могут помешать участию граждан в крупных СПО-проектах

Форум — Talks

Взято с Opennet, там подробно https://www.opennet.ru/opennews/art.shtml?num=59517

Государственная Дума РФ в третьем, окончательном, чтении приняла законопроекты №346588-8, №346769-8 и №346750-8, запрещающие участие граждан РФ в незарегистрированных в специальном реестре иностранных некоммерческих организациях, и вводящие, среди прочего, уголовную ответственность за организацию деятельности подобных организаций. Закон вступит в силу после того как пройдёт утверждение в Совете федерации и будет подписан президентом. У продвигаемого закона есть очень серьёзный побочный эффект - под его действие потенциально попадает участие во многих международных СПО-проектах.

Придумано конечно против околополитических, но формально без разницы. Закоммитил патч - участвуешь.

 ,

praseodim
()

Чебурнетизация. Регистрация на сайтах только с российских e-mail и реестр хостеров.

Форум — Talks

Еще с 2018-го года рассматривался законопроект о новостных агрегаторах. Там много чего, основное - это чтобы их владельцами были только россияне без иностранного гражданства или компании с не более, чем 20% иностранного.

Внезапно, несколько дней назад ко второму чтению в закон накидали поправок.

Если вкратце, наиболее чувствительные для всех - это то что:

1) ВСЕ (т.е. и LOR с Макскомом) сайты в рунете обязаны будут для лиц, находящихся в России, использовать регистрацию только 1) через российских сотовых операторов, 2) через Госуслуги или ЕСИА биометрию, 3) через e-mail ТОЛЬКО российских почтовиков, 4) Через всякие вконтакте (российские конечно)

2) На хостеров взвалена куча обязанностей, чего они должны, в том числе установить всякие оперативно-разыскные штуки и будет вестись РЕЕСТР хостеров. Запрещено будет хостить, если не в реестре.

Законопроект №570420-7 https://sozd.duma.gov.ru/bill/570420-7

Смотрите поправки " Таблица поправок, рекомендуемых к принятию (Комитет Государственной Думы по информационной политике, информационным технологиям и связи) " https://sozd.duma.gov.ru/download/AD40421B-2490-4812-8319-410255991D40

 ,

praseodim
()

Машинное эпсилон, sse и fpu87 и спецификатор для printf для __float128

Форум — Development

Не могу подобрать. %lle и %Le не подходят. Другие спецификации перепробовал тоже. Кое-где %Q упоминается, но у меня не работает

Вычисляю машинное эпсилон и не получается для 128-битной плавучки его правильно отобразить.

Вот пример кода, вычисления машинного эпсилон для разных типов (вообще там занятные особенности всплыли работы gcc, особенно если в ассемблерный листинг глянуть)

#include <stdio.h>

int main()
{

float        e_float,eps_float=1.0;
double       e_double,eps_double=1.0;
long double  e_longdouble,eps_longdouble=1.0;
__float80    e__float80,eps__float80=1.0;
__float128 e__float128,eps__float128=1.0;

 e_float=1+eps_float;
 e_double=1+eps_double;
 e_longdouble=1+eps_longdouble;
 e__float80=1+eps__float80;
 e__float128=1+eps__float128;

 while (e_float!=1) 
 {
   eps_float=(float)(eps_float/2);
   e_float=(float)(eps_float+1);
 }
 
 while (e_double!=1) 
 {
   eps_double=(double)(eps_double/2);
   e_double=(double)(eps_double+1);
 }

 while (e_longdouble!=1) 
 {
   eps_longdouble=(long double)(eps_longdouble/2);
   e_longdouble=(long double)(eps_longdouble+1);
 }

 while (e__float80!=1) 
 {
   eps__float80=(__float80)(eps__float80/2);
   e__float80=(__float80)(eps__float80+1);
 }

 while (e__float128!=1) 
 {
   eps__float128=(__float128)(eps__float128/2);
   e__float128=(__float128)(eps__float128+1);
 }

 printf("size: float = %d  double = %d long double = %d  __float80= %d __float128= %d\n",sizeof(float),sizeof(double),sizeof(long double),sizeof(__float80),sizeof(__float128));
 printf("float eps = %e \ndouble eps = %e \nlong double eps = %lle\n__float80 eps = %lle\n__float128 eps = %Le \n",eps_float,eps_double,eps_longdouble,eps__float80,eps__float128);

return 0;
}

Компилирую

$ gcc -mfpmath=387 gccfloats.c -o gccfloats-387

$ gcc -mfpmath=sse  gccfloats.c -o gccfloats-sse

Запускаю. Оба варианта с 387 и sse дают один и тот же результат

size: float = 4  double = 8 long double = 16  __float80= 16 __float128= 16
float eps = 5.960464e-08 
double eps = 1.110223e-16 
long double eps = 5.421011e-20
__float80 eps = 5.421011e-20
__float128 eps = 0.000000e+00

Понятно, ноль там для __float128 быть не может, это результат какого-то округления при выводе.

Если с sse компилировать, то тоже самое. Пробовал вместо %Le написать %.числоf, так хоть %.50000f то будет 50 тысяч нулей. А это уже какая-то фигня.

Кто виноват и что делать? Как узнать машинное эпсилон для 128 битного типа с плавающей запятой.

Попутно любопытные открытия для себя сделал при просмотре ассемблерного листинга.

1. long double и __float80 - одно и тоже. По крайней мере для gcc 10.2.1 Впрочем, вроде где-то об этом было. Что интереснее, для расчета всегда используется x87-й блок, даже если -mfpmath=sse -msse2

2. Хотя long double - 80-ти битный тип, длинна 16 байт. Видимо из-за выравнивания

3. Для __float128 всегда используется sse2, даже если указано -mfpmath=387

Не понял, как можно заставить использовать avx и avx2

 , , ,

praseodim
()

RSS подписка на новые темы