15 Jan 2020 17:04:12 UTC

Topic 220443

(moderation:

Motivation : WEALTH $$=$$$$$ : Hail Odin

Float, HLSL & SPIR-V Compiler Role

(c)RS

Vulkan 1,1.2,1.3+ & DX10,11,12+ , HLSL & SPIR-V

Rule sets : Float,Vector,AVX,SiMD

General Instruction Optimisation Procedure & Vulkan/DX Shader stack.

HLSL & SPIR-V Compilers jobs are to streamline code into efficient Float & SiMD,Vector,AVX Instruction sets that do the maths in the order most efficient for clock cycle use & Instruction load,store & set cycles.

HLSL & SPIR-V should be optimisation compiler sub-rules for valid Vector,AVX,SiMD instructions.

Complex maths is 90% going to be float & SiMD instruction are clock cycle optimiser's for uncomplicated maths with multiple vectors.

General Instruction Optimisation Procedure & Vulkan/DX Shader stack.

Firstly the SiMD Shader base language is Assembler with script balanced scripting models

GPU: AMD,NVidia,STI,ARM,Intel ,RISC sets(IBM,Cisco,Del,HP,Fujitsu,Sun,Subset Micro-Processors,Thunder 2,CISC: AMD,Intel, IBM

(Others Exist.)

Basic instruction strategy of SiMD & Float adaptation of the main concerns for all programming models that funnel into SiMD/AVX/Vector & broadly Float..

HLSL,SPIR-V Code is a layer 2 abstraction over the code base Vectored Instruction Set,

Conceptually the baggage is imagining that there is a limitation to level 3 C Code..

Well as SiMD/Vector/AVX/Float is a Algebra maths formula, The basic solution is algebra.

Algebra is the super set within which Shader code exists as a subset of Float,

Understanding this fact is key to understanding the concept.

The role of the shader layer shall be divided into two parts:

Complex maths : (Integer, Float) & Simple Maths with multiple dataset values.

Firstly the Coder separates the two layers that solve the maths algebra.

(FLOAT)The complex maths Objects(Algebra) & (Vector,AVX,SiMD)the Vector rule set Objects.

Examples:

Polygon (float) Values = Result A,B,C & then Vector to tessellation

Preferably we have the polygons worked out and saved in ram & then we tessellate.

Vector Instruction: Memory Loaded Objects (A,B,C,D,Ecetera)

Instruction sets of bit swaps being common in Interpolation & Anti Aliasing for example.

Vector instruction sets : AVX are in principle to redice CPU Cycle count on multiple Object(A,B,C,D) Simple Maths without testing the rule sets.

The world of Vector involves Bit Swaps (More complex algebra)

& Simple Mul (Multiply) + - & Division /

Bit swapping data sets appears to be a key player in SiMD/AVX

So arguing about Float matters.. and the role of Vector instruction is clearly defined as increasing instruction count per clock cycle for a limited instruction set.

Understanding efficiency is the object of the compiler & we have to test the instruction speed & efficiency versus FLOAT..

Bit Swaps are 3 Float instruction cycles for example versus 1 in AVX; With series of Objects to swap,

Series of 4 for example.

Float &Integer maths Instructions:

Dimensional code such as 3D Polygons,Curves,Ellipses,FTT,Blast & Maths related to vectored noise reduction such as Analogue Vacuum Tube Maths; Indeed Ohms law for example.

So imagine a world where simple algebra is the law, So algebra is soon complicated & involves 3 roll loops.

For example:

For A = 3, C = EMC², D = Entropy, E = Energy

therfor A + B

B = ( G = ( F - ((D/C)+(E*C))))

Exumé Temré

Vector is to simplify cycle, Float is to explain the butterfly

https://science.n-helix.com/2019/05/compiler-optimisation.html

https://science.n-helix.com/2020/01/float-hlsl-spir-v-compiler-role.html

https://www.khronos.org/blog/hlsl-first-class-vulkan-shading-language

(c)RS

Language

Copyright © 2020 Einstein@Home. All rights reserved.