Page MenuHomePhabricator

dtemirbulatov (Dinar Temirbulatov)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 17 2015, 10:06 AM (205 w, 1 d)

Recent Activity

Today

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Even if it off by default, I don't think it is a good idea to have the code that may lead to regressions when we could avoid that.

Fri, Aug 23, 5:06 AM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Some of the results are worse than without the patch. Can we investigate why?

yes, I will focus on 401.bzip2, 429.mcf. but this SLP throttling supposes be off by default and it on here just to show the impact on tests.

Fri, Aug 23, 4:38 AM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Here is SPEC CPU 2006 INT results:

Fri, Aug 23, 3:48 AM

Yesterday

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

Thu, Aug 22, 6:51 AM

Mon, Aug 19

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

rebased.

Mon, Aug 19, 5:51 PM
dtemirbulatov committed rG081c57989e88: [SLP][NFC] Avoid repetitive calls to getSameOpcode() (authored by dtemirbulatov).
[SLP][NFC] Avoid repetitive calls to getSameOpcode()
Mon, Aug 19, 5:24 PM
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

ping

Mon, Aug 19, 5:02 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I wanted to see if this patch would help with a problem that I'm looking at, but I get this error when trying to build:

Yes, it should be "llvm::" , I will rebase the patch and I am thinking to suggest to you this solution in D64142.

Mon, Aug 19, 5:02 AM

Fri, Aug 16

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased.

Fri, Aug 16, 3:33 PM · Restricted Project
dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping.

Fri, Aug 16, 12:31 PM · Restricted Project

Thu, Aug 15

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

looks good to me.

Thu, Aug 15, 4:34 AM · Restricted Project

Wed, Aug 14

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

rebased.

Wed, Aug 14, 2:01 PM · Restricted Project
dtemirbulatov committed rGda0435a69007: [SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of… (authored by dtemirbulatov).
[SLP][NFC] Use pointers to address to ScalarToTreeEntry elements, instead of…
Wed, Aug 14, 12:48 PM
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

fixed formatting issue at line 1308.

Wed, Aug 14, 8:08 AM · Restricted Project
dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Wed, Aug 14, 7:31 AM · Restricted Project
dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Wed, Aug 14, 6:13 AM · Restricted Project

Mon, Aug 12

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed remarks.

Mon, Aug 12, 2:09 PM · Restricted Project

Mon, Aug 5

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Fixed all previous remarks, rebased.

Mon, Aug 5, 12:57 AM · Restricted Project

Fri, Aug 2

dtemirbulatov added a comment to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Ping

Fri, Aug 2, 5:38 AM · Restricted Project

Tue, Jul 30

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed typo at line 123.

Tue, Jul 30, 5:49 AM

Sun, Jul 28

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

rebased.

Sun, Jul 28, 6:33 AM

Fri, Jul 26

dtemirbulatov updated the diff for D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..

Rebased, fixed previous remarks. Here we still have InstructionsState and I have the full change with the state in TreeEntry but I prefer to break it in several reviews.

Fri, Jul 26, 3:47 AM · Restricted Project

Jul 23 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Looks good to me, just tryScheduleBundle() function type. I think we could simplify it later, @RKSimon @ABataev any comments?

Jul 23 2019, 9:00 AM · Restricted Project

Jul 22 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping, if approved I am going to commit with "slp-throttling" disabled by default, it is enabled just to show the impact on the test.

Jul 22 2019, 4:06 PM

Jul 15 2019

dtemirbulatov added inline comments to D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 15 2019, 3:47 PM · Restricted Project

Jul 13 2019

dtemirbulatov created D64700: [SLPVectorizer] [NFC] Avoid repetitive calls to getSameOpcode()..
Jul 13 2019, 7:24 PM · Restricted Project

Jul 12 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Ping

Jul 12 2019, 10:32 AM

Jul 6 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jul 6 2019, 7:00 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased.

Jul 6 2019, 6:54 PM

Jul 3 2019

dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..

Overall, I don't see any issues with linking TreeEntry and SchedularData with lane information.

Jul 3 2019, 4:53 PM · Restricted Project
dtemirbulatov added a comment to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
Jul 3 2019, 4:51 PM · Restricted Project

Jul 2 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, updated incorrect comment in treeTraversal() function.

Jul 2 2019, 11:28 AM

Jun 29 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed issue with visiting the same node twice also added the assertation that we are not visiting any node twice and the assertion that all proposed nodes were visited.

Jun 29 2019, 5:42 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed incorrect algorithm implementation in findSubTree() fundction.

Jun 29 2019, 7:26 AM

Jun 26 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased and addressed previous remarks.

Jun 26 2019, 4:32 PM

Jun 13 2019

dtemirbulatov accepted D60897: [SLP] Look-ahead operand reordering heuristic..

LGTM.

Jun 13 2019, 5:39 AM · Restricted Project

Jun 12 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

hmm, I have another failure with this change on my setup, now it is PR39774.ll. Probably, it might be sort algorithm differents of similar, since it just swap of two inserts. I don't have this failure if PR39774.ll is intact.

Jun 12 2019, 6:07 PM · Restricted Project
dtemirbulatov committed rGb2f45ba1e8ac: [SLP] Update propagate_ir_flags.ll test to check that we do retain the common… (authored by dtemirbulatov).
[SLP] Update propagate_ir_flags.ll test to check that we do retain the common…
Jun 12 2019, 5:19 PM
dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 12 2019, 5:18 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:26 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 11:15 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 12 2019, 8:23 AM

Jun 11 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:35 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:27 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 12:21 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:19 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 11 2019, 11:15 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

fixed a typo.

Jun 11 2019, 11:08 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased, fixed all remarks.

Jun 11 2019, 10:32 AM

Jun 6 2019

dtemirbulatov added a comment to D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

@dtemirbulatov It might be worth adding tests that check that we do retain the common subset?

Jun 6 2019, 4:42 PM
dtemirbulatov abandoned D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.

Please can you add a better explanation of the problem to the description of the patch?
I'm not sure what the problem is, you are allowed to drop nuw/nsw flags: https://rise4fun.com/Alive/plNm
So the new vectorized binop should simply take the smallest common subset of flags, which likely most often means no flags.

Jun 6 2019, 12:06 PM

Jun 5 2019

dtemirbulatov created D62938: [SLP] Forbid to vectorize bundles with same opcode but different IR flags.
Jun 5 2019, 6:57 PM
dtemirbulatov committed rG15c657d13d6f: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973. (authored by dtemirbulatov).
[SLP] Fix regression in broadcasts caused by operand reordering patch D59973.
Jun 5 2019, 8:25 AM

Jun 4 2019

dtemirbulatov accepted D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

LGTM.

Jun 4 2019, 7:06 AM · Restricted Project
dtemirbulatov added a comment to D62427: [SLP] Fix regression in broadcasts caused by operand reordering patch D59973..

looks good to me.

Jun 4 2019, 7:03 AM · Restricted Project

Jun 3 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Jun 3 2019, 6:01 AM

Jun 1 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Addressing last remarks, rebased.

Jun 1 2019, 9:49 PM

May 28 2019

dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 2:49 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:54 PM · Restricted Project
dtemirbulatov added inline comments to D62432: [SLPVectorizer] Make the scheduler aware of the TreeEntry operands..
May 28 2019, 12:22 PM · Restricted Project

May 23 2019

dtemirbulatov added a comment to D60897: [SLP] Look-ahead operand reordering heuristic..

oh, I notice some regression with the change for AArch64/matmul.ll and AArch64/transpose.ll. Maybe there is a way to isolate it with heuristics?

May 23 2019, 12:00 PM · Restricted Project

May 22 2019

dtemirbulatov added inline comments to D60897: [SLP] Look-ahead operand reordering heuristic..
May 22 2019, 12:28 PM · Restricted Project

May 21 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

I think the first throttling patch should implement a very simple and fast algorithm for finding the cut:

  1. Add new fields to TreeEntry for Cost, ExtractCost and PredecessorsCost.
  2. During getTreeCost() set the TE.Cost and TE.ExtractCost (as you did in an earlier version of the patch if I am not mistaken)
  3. Do a single top-down traversal of the tree in reverse postorder and set the TE.PredecessorsCost equal to the cost of all the predecessor's costs until TE. While doing so, you can compare the cost of cutting just below TE by comparing the gather cost of TE versus the Cost + PredecessorsCost. This is very fast as you only need to visit each TreeEntry node once, so the complexity is linear to the size of the tree.

    For example, in slp-throttle.ll the bundle that needs to be scalarized [%add19, %sub22] has costs of Cost=1, ExtractCost = 0, PredecessorsCost=1 (because of bundle [%mul18, undef]). Cutting below the bundle has a cost of +1, while keeping it vectorized has a cost of +2 (Cost=1 + PredecessorsCost=1).

    This should be good-enough for most simple cases. We can improve it later, if needed, with follow-up patches. What do you think?

yes, Looks good.

May 21 2019, 6:33 AM

May 20 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:11 PM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
May 20 2019, 5:08 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased.

May 20 2019, 5:59 AM

May 19 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

ping

May 19 2019, 3:43 PM

May 18 2019

dtemirbulatov committed rG2ff72f665417: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec(). (authored by dtemirbulatov).
[SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec().
May 18 2019, 6:29 PM
dtemirbulatov accepted D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

LGTM.

May 18 2019, 4:41 PM · Restricted Project
dtemirbulatov added a comment to D61795: [SLP] Refactoring of EdgeInfo and UserTreeIdx in buildTree_rec()..

Looks good to me either.

May 18 2019, 7:01 AM · Restricted Project

May 16 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Added comments to cutBranch() and extendSubTree() functions. Removed dupicate variable "I" in extendSubTree() function.

May 16 2019, 6:06 PM
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Again, the slp-throttling is on to just show the impact on SLP tests.

May 16 2019, 12:34 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Looks like fixed all remark, rebased.

May 16 2019, 12:17 PM

May 10 2019

dtemirbulatov accepted D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

LGTM.

May 10 2019, 6:07 AM · Restricted Project

May 9 2019

dtemirbulatov added a comment to D61706: [SLP] Refactor VectorizableTree to use unique_ptr..

looks like "class nodes_iterator" definition at 1856 is not formatted properly.

May 9 2019, 7:45 PM · Restricted Project
dtemirbulatov requested changes to D61706: [SLP] Refactor VectorizableTree to use unique_ptr..
May 9 2019, 7:43 PM · Restricted Project

May 6 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Found typo in the previous upload.

May 6 2019, 5:29 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebased. Simplified solution by removing leaves structure and any notion of branches. Left "slp-throttling" flag true by default just to show the impact on SLP tests.

May 6 2019, 5:21 PM

Apr 30 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Implemented tree/graph throttling solution.

Apr 30 2019, 7:49 AM

Mar 29 2019

dtemirbulatov accepted D59992: [SLP] Add support for commutative icmp/fcmp predicates.

LGTM.

Mar 29 2019, 8:10 AM · Restricted Project

Mar 25 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 25 2019, 6:43 AM
dtemirbulatov added a comment to D59738: [SLPVectorizer] reorderInputsAccordingToOpcode - remove non-Instruction canonicalization.

Looks good to me. Abataev, any objections?

Mar 25 2019, 4:11 AM · Restricted Project
dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Did you check the 462.libquantum 's regression?

Mar 25 2019, 4:05 AM

Mar 22 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Changed getTreeCost loop to condition "--I;".

Mar 22 2019, 12:29 PM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed remarks, removed Cost state from TreeEntry, turned cl::opt throttling flag false by default.

Mar 22 2019, 12:12 PM
dtemirbulatov committed rGf95351b918c9: [SLPVectorizer] Add test related to SLP Throttling support, NFCI. (authored by dtemirbulatov).
[SLPVectorizer] Add test related to SLP Throttling support, NFCI.
Mar 22 2019, 7:52 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 22 2019, 6:49 AM

Mar 21 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fixed cost estimation for canceled elements to be inserted to interact with vectorized.
Replaced main throttling loop in reverse-post-order traversal as it was suggested in the previous remarks.
Making final decision on throttle inside getTreeCost() we don't need to hold cost estimations in TreeEntry.
Avoid vectorizing any flow instructions during partial vectorization.
Added cl::opt flag for Throtelling, it is now on by default to show the impact on tests, but during commit, I could make this option off by default to estimate the whole impact before enabling everywhere.
Here are the spec cup 2006 numbers before and after:

Mar 21 2019, 12:36 PM

Mar 19 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 19 2019, 9:24 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 19 2019, 7:29 AM
dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 19 2019, 7:00 AM

Mar 14 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Delete unnecessary variables from getTreeCost().

Mar 14 2019, 8:00 AM

Mar 13 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 13 2019, 9:43 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Rebase the change, Fix Vasileios remarks.

Mar 13 2019, 9:36 AM

Mar 8 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Add cost calculation for in vectorizable tree operation to be extracted for the canceled tree elements use. Fix performance regression on Phoronix's c-ray-1.2.0 test-suite by avoiding to vectorize just one seed instruction. Spec 2006 numbers are unchanged with several instances of new vectorizations but not hot enough to change the numbers. Also, I noticed a good vectorizations example with Phoronix's encode-mp3-1.7.3 of two FFT kernels with ~8% faster for fft_short kernel and ~3% faster for fft_long on Intel(R) Core(TM) i7-6700HQ.

Mar 8 2019, 5:07 PM

Mar 1 2019

dtemirbulatov added inline comments to D57779: [SLP] Add support for throttling..
Mar 1 2019, 3:36 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Change the decision of reducing tree if only the cost of vectorizing is too high and reduce the tree to the highest element of the tree that is minimally profitable.

Mar 1 2019, 3:31 AM

Feb 26 2019

dtemirbulatov added a comment to D57779: [SLP] Add support for throttling..

Since cost computing was changed, can you rerun spec benchmarks?

sorry, I found my previous result not quite reliable, I have changed my methodology, I will rerun spec benchmarks.

Feb 26 2019, 8:19 AM
dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

Fix cost calculation, fix the run-time error by adding external users for canceled elements in reduceTree(), add testcase.

Feb 26 2019, 5:37 AM

Feb 22 2019

dtemirbulatov updated the diff for D57779: [SLP] Add support for throttling..

looks like, I addressed the issue of leaf gather nodes.

Feb 22 2019, 2:23 AM