Como fizemos o overclock do CAD COMPASS-3D → Parte 3

Esta é a parte final do artigo sobre como acelerar o KOMPAS-3D v18 ( Parte 1 , Parte 2 ). Ele é dedicado a melhorias no cálculo das características de centralização da massa e o que foi feito para acelerar o KOMPAS no lado do nosso núcleo geométrico C3D . E um pouco mais sobre que tipo de ferro permitirá que você sinta a aceleração o máximo possível.



Sobre o cálculo do ICC


Há outro parâmetro que afeta significativamente o desempenho do KOMPAS - o cálculo das características de centralização da massa (MTC).

O cálculo do ICC é o "básico" para muitas funções, e é simplesmente necessário acelerá-lo.

Leia mais sobre o ICC.
Características de centralização da massa (MCC) são os dados físicos do produto: massa, área, volume, coordenadas do centro de massa , plano, momentos axiais e centrífugos de inércia .

O MLC pode ser obtido por cálculo ou definido manualmente, eles podem ser calculados para o modelo 3D e para o desenho.

Os dados calculados são usados ​​para exibir a massa nas propriedades do modelo, nos relatórios, no carimbo de um desenho associativo etc.


Konstantin Gulevsky, programador:

“Parece que calcular o volume e a massa de um corpo não é uma tarefa tão difícil. De fato, esses cálculos são realizados em microssegundos; além disso, o núcleo geométrico do C3D realiza com êxito esses cálculos em diferentes segmentos. No entanto, quando se trata de "montagens grandes", o cálculo do ICC pode se arrastar por alguns minutos e, em alguns casos, por dezenas de minutos. A razão para isso é principalmente as complexas relações dos componentes: uma mudança nas características de um componente afeta as características de muitos outros. Para acelerar o cálculo, foi desenvolvido um gráfico especial que determinava as relações entre componentes e corpos. O cálculo do TPI tornou-se possível de ser realizado em etapas:

  1. As MLCs de todos os corpos são calculadas (os corpos não se afetam, ou seja, uma alteração na MLC de um corpo não pode levar a uma alteração na MLC de outro corpo).
  2. As MLCs de componentes independentes umas das outras são calculadas, isto é, aquelas para as quais uma alteração na MLC de um componente não leva a uma alteração em outro.
    A etapa 2 é executada recursivamente até que o ICC de todas as inserções seja calculado.
  3. O MTC do conjunto da cabeça é calculado.
    Esse algoritmo acelerou significativamente o cálculo do ICC, principalmente devido à eliminação de cálculos repetidos para os mesmos componentes. Mas também graças a essa abordagem, tornou-se possível paralelizar o cálculo do ICC no nível do componente. Ao executar as etapas 1 e 2, o cálculo do ICC de corpos e montagens é realizado em diferentes fluxos. Essas otimizações também deram um impulso no desempenho.

Abaixo estão exemplos de tempos de cálculo do MTC.

A diferença na velocidade de cálculo será ainda mais visível nos modelos alterados (um grande número de corpos e pastilhas exige o cálculo do ICC) - eles são marcados com um asterisco *.

A seguir, as medições foram realizadas em um PC com a seguinte configuração:
CPU: Intel Core i7-6700K 4.00 GHz
RAM: 32 Gb
GPU: NVidia Quadro P2000
SO: Microsoft Windows 10 x64 Professional
Tabela 6. Tempo de cálculo do ICC, segundos (menos é melhor). Os modelos modificados são marcados com um asterisco *.

ModeloO comando " model", tempo de cálculo de , seg
V16.1v17.1v18

Instalação
vácuo tecnológico
1,51,50,6
* Instalação
vácuo tecnológico
(depois da mudança)
17,910,82.2

Multiuso
unificado
corpo da caixa
37,460,31.8

Maré do Norte
estação de poder
316,0104,44.6

Redutor de navio
usina
359,68,91,0

Ônibus bonde
3.3.4,50,7
* Trólebus
(depois da mudança)
21,222,62,5


Evgeny Filimonov, testador:
“O cálculo do ICC é usado para muitas funções do KOMPAS-3D:

  • salvar o modelo, especialmente depois de fazer alterações,
  • a saída de informações relevantes sobre a massa do modelo, componentes individuais da montagem,
  • relatórios
  • cálculo de dados na coluna de massa para a janela "Gerenciamento de desempenho",
  • ao criar desenhos associativos para obter o valor de massa da montagem.

Estes são os principais, mas de modo algum todos os casos em que o cálculo da ICC é necessário.


A seguir, são apresentados os resultados das funções de aceleração que dependem do cálculo do ICC:

Tabela 7. Execução do comando “Informações do Objeto” para o elemento raiz da árvore, segundos (menos é melhor).

ModeloEquipe "Informações sobre o objeto", com
V16.1v17.1v18

Maré do Norte
estação de poder
101,5109,210,7

Redutor de navio
usina
50,914,11.7

Multiuso
unificado
corpo da caixa
12,410,91.7

Ônibus bonde
2.96.40,3


Tabela 8. Tempo de entrada no processo de propriedades do modelo, segundos (menos é melhor).

ModeloEntrada no processo de propriedades do modelo, com
V16.1v17.1v18

Maré do Norte
estação de poder
295,2108,11,0

Redutor de navio
usina
267,113,52.7

Multiuso
unificado
corpo da caixa
35,421,02.1

Ônibus bonde
3,110.00,7


Tabela 9. Crie um relatório, segundos (menos é melhor) (relatório no primeiro nível de montagem com parâmetros padrão).

ModeloCriar comando de relatório para montagem, com
V16.1v17.1v18

Maré do Norte
estação de poder
305,8105,512,1

Redutor de navio
usina
122,47.46,8

Multiuso
unificado
corpo da caixa
32,210,32.1

Ônibus bonde
10.06.11,5


Tabela 10. Execute o comando “Performance Management”, segundos (menos é melhor).

ModeloEquipe "Gerenciamento de Desempenho", com
V16.1v17.1v18

Maré do Norte
estação de poder
66,4107,89,9

Redutor de navio
usina
262,812,41.3

Multiuso
unificado
corpo da caixa
34,010,81,5

Ônibus bonde
2,85.50,1


Como o núcleo geométrico acelerou o KOMPAS-3D v18



Os desenvolvedores do núcleo geométrico C3D, que é a base do KOMPAS-3D, também não se afastaram e fizeram as melhorias necessárias nos componentes do kernel para aumentar a produtividade.

O C3D Modeler implementa a projeção em componentes de um modelo 3D em um desenho. Anteriormente, após editar (alterar ou mover) um dos componentes, todas as projeções tinham que ser recalculadas novamente. A tarefa principal era reprojetar apenas os componentes modificados especificados e aqueles que poderiam ser afetados durante a projeção. Isso acelerou a construção de projeções de montagem com várias modificações de suas peças. Obviamente, quanto menor o número de componentes de montagem afetados pelas alterações, maior e mais perceptível o efeito na velocidade da construção da projeção.


Projeção de componentes. Modelo 3D de uma instalação tecnológica a vácuo, desenvolvida pela ESTO-Vacuum (Moscou)

Outras operações do C3D Modeler também são aceleradas:

  • projeção de símbolos de linhas,
  • excluir e sobrepor segmentos ao projetar,
  • casos especiais de cálculo do resultado de uma operação booleana para um grande número de arestas e ciclos nas faces dos modelos,
  • trabalhe com atributos personalizados.


O solucionador 2D paramétrico do C3D Solver acelerou em uma média de 30-40% e, em alguns casos, várias vezes devido à otimização de algoritmos computacionais. Por exemplo, uma situação em que, ao impor restrições a um objeto, são impostas as limitações de um grande número de outros objetos. Um exemplo impressionante é a simetria de um grande número de objetos diferentes em relação a uma linha reta. Tais casos aceleraram 50-70 vezes. No modelo, que serviu como causa primária do trabalho, o cálculo da sobreposição de simetria foi realizado em 40 segundos. Agora a operação é calculada não mais que 300 milissegundos.


Simetria de um grande número de objetos em relação a um objeto linear

Foi alcançado um aumento de cinco vezes no desempenho do C3D Solver ao trabalhar com splines de interpolação que passam por um conjunto de pontos predefinidos. Quanto maior o spline (o número de pontos que o especifica), maior a aceleração. Para um spline passando por 100-200 pontos, a aceleração dez vezes é registrada.


Velocidade das operações antes e depois da otimização do núcleo geométrico C3D

Não sem modificações nos parâmetros usados ​​para triangulação. O fato de termos começado a usar o desvio angular, já mencionamos na parte dedicada à renderização . Várias otimizações foram realizadas para calcular a triangulação usando desvio angular e para quebrar de maneira mais otimizada alguns tipos de superfícies.

Ferro para v18


A funcionalidade da nova versão permite que você use os recursos de poderosas placas gráficas em plena capacidade. Os recursos dos processadores com vários núcleos estarão mais envolvidos.

O usuário se beneficiará dos processadores com vários núcleos nos seguintes cenários:

  • ao criar vistas de projeção (desenhos associativos),
  • ao calcular o ICC e executar os processos vinculados a ele,
  • o multi-core permitirá que você abra arquivos ainda mais rapidamente, pois o cálculo multi-thread dos níveis de detalhe funcionará,
  • na importação
  • em operações que criam um grande número de objetos geométricos (corpos).

Recomendamos o uso de processadores multinúcleo não apenas assim, mas porque as funções indicadas são de frequência.

A configuração recomendada para um trabalho confortável com montagens convencionais é mostrada na tabela 11 e para trabalhar com montagens grandes - na tabela 12.

Tabela 11. Configuração para um trabalho confortável.

CPUProcessador multinúcleo (4 núcleos) com uma frequência de clock de 3GHz e superior
Placa de vídeoModerno, discreto, preferível à produção da NVIDIA:
com suporte para OpenGL 4.5,
2 GB ou mais de memória de vídeo
RAM8 GB ou mais


Tabela 12. Configuração para trabalhar com montagens grandes.

CPUProcessador multinúcleo (4 núcleos ou mais)
com uma frequência de clock de 4GHz e superior
Placa de vídeoModerno, discreto, fabricado pela NVIDIA:
com suporte para OpenGL 4.5,
4 GB ou mais de memória de vídeo
Largura de banda de vídeo (largura de banda de memória) - 140 GB / s ou mais
* os parâmetros das placas de vídeo podem ser visualizados no site do fabricante do chip de vídeo
RAMDDR4, 16 GB ou mais (32 GB melhor)
Sobre a quantidade de RAM, você precisa prestar mais atenção.
Com sua falta, o sistema pode começar a usar
arquivo de troca - esse arquivo está localizado no disco,
e trabalhar com ele é muito (!) mais lento que com RAM
Sistema de discoUnidade SSD como o local de instalação do KOMPAS-3D
e armazenamento de documentos KOMPAS


Você precisa se esforçar para criar sistemas balanceados, especialmente se você trabalha com montagens grandes. Mas você sempre precisa se concentrar em uma montagem 3D específica. Você definitivamente não pode dizer "este conjunto é grande", não pode se concentrar apenas no número de componentes. Afinal, também há a complexidade da execução.

Como parte do trabalho na versão v18, colaboramos com desenvolvedores da NVIDIA.
Como o volume de alterações no lado da renderização era grande, era necessário atualizar o perfil especial usado para o KOMPAS-3D nas placas Quadro profissionais. Um perfil atualizado apareceu nos drivers desde a versão v391.89.

Na nova versão do driver, também foi possível eliminar os atrasos antes de ampliar alguns modelos.


O que houve?


Já existem algumas reservas para acelerar a renderização.

Alexander Tulup, programador:
“No futuro, você poderá mudar gradualmente para o VulkanAPI. Nesse caso, o driver não está mais tentando fazer o trabalho para o desenvolvedor, como foi o caso do OpenGL. Você deve monitorar independentemente a correção dos dados de entrada. Mas, ao mesmo tempo, o custo da chamada de desenho é muito menor e, se você considerar o suporte inicial para multithreading, poderá obter mais desempenho com menos esforço.


VulkanAPI

O OpenGL foi desenvolvido em um momento em que a multithreading não era tão difundida. Tudo o que eles já poderiam ter sido extraídos, e na atualização mais recente eles adicionaram recursos para uma transição mais suave para o VulkanAPI.
Os planos aceleram o desenho de tipos específicos de objetos - é uma variedade de anotações, esculturas.

Na projeção "rascunho", está sendo trabalhada a possibilidade de aumentar a precisão do método.

Além da otimização algorítmica, continuaremos otimizando os processos de interação do usuário com o sistema para reduzir o número de ações em operações monótonas.

Um sistema de monitoramento de desempenho também será desenvolvido para monitorar constantemente a velocidade do KOMPAS-3D. Os planos incluem a expansão de cenários controlados e a base de modelos utilizados nos testes.

E já lançamos o KOMPAS-3D v18.1!


O service pack finalizou várias áreas relacionadas à velocidade. Otimização mais fina do shader, implementação mais eficiente de recorte de objetos invisíveis. Melhor desempenho ao trabalhar com a seção dinâmica.

E também houve transparência realista com um novo nível de desempenho:


Começando com a aceleração da renderização, o trabalho na v18 foi longe demais. Agora, às vezes, brincamos que, e trabalhando mais em acelerações, alcançaremos valores negativos dessa maneira. Mas, de fato, isso é uma piada, só pode ser entendida com o tempo. Enquanto isso, oferecemos para ler mais sobre o desempenho do KOMPAS-3D. Aqui você pode aprender como trabalhar rapidamente com montagens de qualquer complexidade. E que a ferramenta de co-criador esteja com você.

Source: https://habr.com/ru/post/pt447752/


All Articles