Subscribe to this thread
Home - Cutting Edge / All posts - Manifold System 9.0.170.last
adamw


9,418 post(s)
#04-Mar-20 15:43

This thread describes the last batch of updates to the 9.0.170.x series of builds which were merged to 9.0.171.

The build can be downloaded from the Product Downloads page.

(One of the things that unfortunately didn't make it into the public build is restored support for Fermi cards which we lost in early January with the move to CUDA 10.2. As we promised, we will provide support for multiple CUDA versions, this just somehow got desynced with the build schedule. We will fix this in the first cutting edge build for 171. Apologies.)

adamw


9,418 post(s)
#04-Mar-20 15:44

Localization

(Fix) Loading localization data no longer throws an error if the last line of the localization file does not contain end of line characters.

Loading localization data supports files with Unix-style line ends.

There is a new Edit Localization File dialog invoked via the Tools menu to edit localization files. The dialog shows a list of all localizable strings and allows specifying translations (double-click a string, or click a string and press Enter or F2). The '...' button at the top of the dialog opens an existing localization file. The opened localization file can be UTF16, UTF8 or ANSI. The Save button saves changes made in the dialog into the opened localization file. If there is no opened file, the dialog asks to specify the file to save the data to. The saved localization file is always UTF8 with BOM.

The Edit Localization String dialog used to edit the translation for a string includes the Use Default button that sets the translation to the (default) English text.

Loading a file in the Edit Localization File dialog detects strings attached to unknown tags and saves all such strings at the end of the file after a '###' separator. (This sometimes happens when tags themselves get renamed between the builds - the change keeps the translation attached to an old tag in the file instead of throwing it out.)

The Edit Localization String dialog includes the Use Unmatched button that sets the translation to that used for a string attached to an unknown tag. If the file contains only one string attached to an unknown tag, the button sets the translation to the one for that string. If the fine contains multiple strings attached to unknown tags, the button shows a drop-down menu with choices, showing a tag and translation for each. If the number of strings attached to unknown tags is big, the list of choices is limited to the 20 choices that best match the edited tag.

The Edit Localization String dialog includes the Use Existing button that sets the translation to the already specified translation for a different string with the same English text. If there is only one translation variant found in the strings, the button sets the translation to that variant. If there are multiple variants, the button shows a drop-down menu with choices, showing a translation for each. (This allows quickly reusing translations for similarly named controls or commands.)

The Edit Localization File dialog can be resized.

The list of strings in the Edit Localization File dialog can be filtered using a text fragment. Filtering keeps strings which contain the text fragment in either the tag, the default value, or the translated value.

The list of strings in the Edit Localization File dialog can be filtered to: all strings (All), strings with a translation (Localized), strings with a translation that coincides with the default English text (Localized as Default), strings without a translation (Unlocalized), strings changed since the last save operation (Edited), strings unchanged since the last save operation (Unchanged).

The Edit Localization File dialog reports the number of shown strings and the total number of strings in the readout on the left bottom.

The Edit Localization File dialog includes an optoin to save unlocalized strings as comments. The option is on by default. (This produces files useful for localization in third-party editors outside of Manifold.)

The Options dialog allows specifying a localization to use. The choices are: (auto) = use localization files matching the UI language for the user specified in the OS (previous behavior and the default), (none) = ignore localization files and stick to the built-in English strings, or a specific language. The dialog automatically lists languages for UI.xxx.TXT files found near MANIFOLD.EXE. Switching a language only takes effect after a restart - or in a new instance of Manifold launched after the Options dialog has been closed.

Other

The new Same Format command for a layout formats selected layout frames similarly to the active frame.

The new Resize to Selected command for a layout moves the active layout frame to cover selected frames.

A formatting sample in a sample layout frame is allowed to cover the entire frame if the frame text is empty. (This allows creating legend lines with multiple formatting samples.)

The new Margins command for a layout toggles page and frame borders in the layout window. (This helps adjusting the final look of the frames without display-only design guides getting in the way.)

Reading PBF data performs faster and uses less memory.

The icon for a data source with additional data that needs user intervention to be captured (a database with an Enterprise storage that contains components not yet migrated to regular tables, or a LAS library that contains files not yet indexed) is changed to be more prominent.

All multiline edit controls support smart double-click select, select all (Ctrl-A) and bracket matching (Ctrl-] and Ctrl-Shift-]).

End of list.

tjhb

9,451 post(s)
#06-Mar-20 00:06

(One of the things that unfortunately didn't make it into the public build is restored support for Fermi cards which we lost in early January with the move to CUDA 10.2. As we promised, we will provide support for multiple CUDA versions, this just somehow got desynced with the build schedule. We will fix this in the first cutting edge build for 171. Apologies.)

This is a detail: the same applies to Kepler cards for which Nvidia driver support has been frozen at 10.1.

It would be great if CUDA support could be sustained for those cards as well. If not, then it is not then end of the world.

Example: Quadro K1100m. Latest driver 426.50, dated 2020.2.28, CUDA 10.1. (There is also an updated CUDA 9.1 driver for this card with the same date.)

tjhb

9,451 post(s)
#07-Mar-20 22:22

More on CUDA drivers and toolkit:

I think it would be a great addition for the About box to report more fully on the GPGPU resources available to Manifold.

Currently the GPU item reports the available CUDA GPU, if any (otherwise "Graphics only"), and its theoretical compute capability.

But there is currently no report of the CUDA version supported by the current NVIDIA driver (and compiler), nor of the CUDA version(s) required by the current Manifold build.

All three things must work together, else GPGPU execution can't happen.

I think it would be great to give the user a single answer to the overall question. What version of CUDA can I use?

A report about hardware capability alone is not perfectly helpful for most people (and might be misleading). Most users don't understand how the different hardware and software requirements fit together, or even where to look. Better to give a report that takes hardware, driver and application into account.

(It might be good to show hardware, driver and software resources separately, enough to help people understand or correct the issue if they don't match. Or that might be overcomplicating things. I don't know.)

I imagine that this would also be pretty simple to implement?

pslinder1
203 post(s)
#08-Mar-20 20:21

Agreed that would be useful.

dchall8
769 post(s)
#08-Mar-20 21:35

What you're suggesting: would that have helped me decide not to get a Fermi card last December? My timing on that was awful.

adamw


9,418 post(s)
#12-Mar-20 10:49

With the changes we are doing, we can keep it as simple as it is now - a single compute capability is fine; if it appears, then we can use GPGPU, otherwise, we cannot. We are taking care of what the latest NVIDIA CUDA toolkit can compile to by using earlier versions of the toolkit to pre-build modules for compute capabilities no longer supported by the latest version offline. There also won't be much of a need to know which specific compute capability is there if we don't support it, because we are going to support everything from 2.0 up (so whenever we won't support the card, it is going to be really, really old - I think 8 requires at least 2.0 as well). We are likely going to log more detail on whether GPGPU was used or not, etc, during specific operations.

adamw


9,418 post(s)
#12-Mar-20 11:01

Regarding NVIDIA gradually dropping support for older cards and freezing versions of the drivers for them - that's fine. We are going to work with any driver that supports CUDA, and with any version of CUDA that supports compute capability 2.0 and up (so, with everything except the earliest CUDA-capable devices and drivers).

adamw


9,418 post(s)
#15-Mar-20 11:54

Status update: we expect to issue the next build somewhere in the coming week. We are working on new UI tools, plus there are additions to analysis, improved support for GPGPUs, etc.

Manifold User Community Use Agreement Copyright (C) 2007-2019 Manifold Software Limited. All rights reserved.